6.3.2 通配符
星号(*)匹配一个文件名段中的0个或多个字符。例如:dir/ *。
import glob
for name in sorted(glob.glob('dir/*')):
print(name)
这个模式会匹配目录dir中的所有路径名(文件或目录),但不会进一步递归搜索到子目录。glob()返回的数据不会排序,所以这里的示例会进行排序以便研究结果。
运行结果:
要列出子目录中的文件,必须把子目录包含在模式中。
import glob
print('Named explicitly:')
for name in sorted(glob.glob('dir/subdir/*')):
print(' {}'.format(name))
print('Named with wildcard:')
for name in sorted(glob.glob('dir/*/*')):
print(' {}'.format(name))
前面显示的第一种情况显示列出了子目录名,第二种情况则依赖一个通配符来查找目录。
在这里,两种做法的结果是一样的。如果还有另一个子目录,则通配符会匹配这两个子目录,并且子目录中的文件名都会出现在结果中。
运行结果: