23. glob

glob 是 python 自带的用来处理文件路径相关操作的模块,它可以找出所有和特定模式匹配的文件路径名(pathname)。

23.1. 通配符

glob 只有3个通配符:

  • * 匹配所有字符

  • ? 匹配单个字符

  • [] 匹配指定范围的字符,如 [0-9], [a-z], [0-3, a-c]

23.2. glob.glob

glob.glob(pathname, *, recursive=False)

返回匹配文件名的一个列表, pathname 可以是绝对路径也可以是相对路径。

recursive=True ,通配符 ** 可以匹配任意文件、目录、子目录、符号链接目录等。

 1>>> import glob
 2>>> glob.glob('./[0-9].*')
 3['./1.gif', './2.txt']
 4>>> glob.glob('*.gif')
 5['1.gif', 'card.gif']
 6>>> glob.glob('?.gif')
 7['1.gif']
 8>>> glob.glob('**/*.txt', recursive=True)
 9['2.txt', 'sub/3.txt']
10>>> glob.glob('./**/', recursive=True)
11['./', './sub/']

23.3. glob.iglob

glob.iglob(pathname, *, recursive=False)

返回匹配文件名的一个生成器(generator)fg,当匹配结果较多时,可以节约内存。 访问方法:

next(fg)

fg.__next__() ## Python3

fg.next() ## Python2

23.4. 参考资料

  1. python的glob模块

  1. glob — Unix style pathname pattern expansion