使用Python对文件操作可谓是有些不方便,知道我发现了glob模块。

glob用法

glob是python自己带的一个文件操作相关模块,内容也不多,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,而且也支持通配符,,?,[]这三个通配符,代表0个或多个字符,?代表一个字符,[]匹配指定范围内的字符,如[0-9]匹配数字。

它的主要方法就是glob,该方法返回所有匹配的文件路径列表,该方法需要一个参数用来指定匹配的路径字符串(本字符串可以为绝对路径也可以为相对路径),比如:

示例:

import glob

print glob.glob(r'D:\github\xiexianbin.github.io\*.html')

输出结果:

['D:\\github\\xiexianbin.github.io\\404.html', 'D:\\github\\xiexianbin.github.io\\archive.html', 'D:\\github\\xiexianbin.github.io\\categories.html', 'D:\\github\\xiexianbin.github.io\\index.html', 'D:\\github\\xiexianbin.github.io\\lian_22_cn.html', 'D:\\github\\xiexianbin.github.io\\links.html', 'D:\\github\\xiexianbin.github.io\\pages.html', 'D:\\github\\xiexianbin.github.io\\tags.html']

因此,就获取目录D:\github\xiexianbin.github.io的文件结尾是.html的文件。

使用相对路径:

glob.glob(r'../*.html')

iglob方法

获取一个可编历对象, 使用它可以逐个获取匹配的文件路径名。与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而 glob.iglob一次只获取一个匹配路径。下面是一个简单的例子:

import glob

file = glob.iglob(r'D:\github\xiexianbin.github.io\*.html')

for html in file:
    print html

输出示例:

D:\github\xiexianbin.github.io\404.html
D:\github\xiexianbin.github.io\archive.html
D:\github\xiexianbin.github.io\categories.html
D:\github\xiexianbin.github.io\index.html
D:\github\xiexianbin.github.io\lian_22_cn.html
D:\github\xiexianbin.github.io\links.html
D:\github\xiexianbin.github.io\pages.html
D:\github\xiexianbin.github.io\tags.html

完毕。