源码:Lib/glob.py
glob 模块根据 Unix shell 使用的规则查找所有与指定模式匹配的路径名。不支持波浪字符扩展,但可以正确匹配 *,? 和用 [] 表示的字符范围。这通过使用 os.listdir() 和 fnmatch.fnmatch() 函数实现,而不是真正地调用一个子 shell。请注意,与 fnmatch.fnmatch() 不同,glob 将以点(.)开头的文件名当做特殊情况处理。(对于波浪字符和 shell 变量扩展,使用 os.path.expanduser() 和 os.path.expandvars()。)
对一个字面量的匹配,请将元字符包含在方括号中。例如,[?]' 匹配字符 '?'。
返回一个匹配 pathname 的路径名列表,列表可能为空,pathname 必须是一个包含路径信息的字符串。pathname 可以是绝对的(比如/usr/src/Python-1.5/Makefile)也可以是相对的(比如../../Tools/*/*.gif),且可以包含 shell 风格的通配符。损坏的符号链接也包含在结果中(和在 shell 中一样)。
例如,假设有一个只包含以下文件的目录: 1.gif, 2.txt 和 card.gif。glob () 将产生以下结果。请注意如何保留任何领先的组件的路径。
>>> import glob
>>> glob.glob('./[0-9].*')
['./1.gif', './2.txt']
>>> glob.glob('*.gif')
['1.gif', 'card.gif']
>>> glob.glob('?.gif')
['1.gif']
如果目录包含以 . 字符开头的文件,默认它们不会被匹配。例如,假设有一个包含 card.gif 文件和 .card.gif 文件的目录:
>>> import glob
>>> glob.glob('*.gif')
['card.gif']
>>> glob.glob('.c*')
['.card.gif']
请参见