glob 模块提供了根据 Unix Shell 通配符规则搜索匹配文件的函数,即根据通配符符号进行模糊搜索。例如,*可以匹配任意多个字符,?可以则匹配单个字符,中括号[]指定匹配的范围,如[0-9]匹配 1 至 9 范围内的数字。
glob 模块的两个主要函数功能是一样的,但是一个直接返回所有结果,另一个返回一个迭代器。
- glob(pathname, recursive=False):参数 pathname 为需要匹配的字符串,参数 recursive 表示是否为递归调用,函数返回匹配的文件列表。
- iglob(pathname, recursive=False):该函数的参数与函数 glob()的参数一致,但返回的是一个迭代器,当数据量非常大时,建议使用该函数。
例如,下面的代码搜索文件扩展名为“.py”的所有文件:
import glob
glob.glob('*.py')
下列代码搜索并打印目录 dir 下最后一个字符是数字的所有文件名:
import glob
for name in sorted(glob.glob('dir/*[0-9].*')):
print(name)