glob模块提供了函数用于从目录通配符搜索中生成文件列表
glob.glob
glob.glob(pathname, *, recursive=False)
- recursive参数默认False,指的是对pathname制定的那一层扫描得到结果后就返回,如果recursive=True,那么可以用两个星号 ** 遍历制定的路径的所有子目录和子目录里的文件
- *表示匹配规则
- glob函数默认不搜索以· 点号开头的文件和路径,如果要求的话需要单独写个点号
glob()函数可以查找符合自己要求的文件,支持通配符操作*,**,?,[]这四个通配符
- ‘*’:0个或多个字符
- ‘**‘:匹配所有文件、目录、子目录和子目录里的文件
- ’?‘:一个字符
- ’[ ]‘:匹配指定范围内的字符,如[0-9]匹配数字
// *匹配符
>>> import glob
>>> glob.glob('*.py')
['hello.py', 'hello1.py', 'hello2.py']
>>> glob.glob('hello?.py')
['hello1.py', 'hello2.py']
glob.iglob
获取一个迭代器( iterator )对象,使用它可以逐个获取匹配的文件路径名。
与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而 glob.iglob一次只获取一个匹配路径
f = glob.iglob(r'*.py')
for py in f:
print py
glob.escape(pathname) #忽略(escape)所有的特殊字符,就是星号,问号,中括号