glob
glob - Unix样式路径名称模式扩展
源代码:
Lib / glob.py
该glob
模块发现所有匹配的根据由Unix外壳使用的规则指定模式的路径名,尽管结果在任意的顺序返回。没有代字符扩展已完成,但是*
,?
和表达的字符范围[]
将正确匹配。这是通过使用函数os.listdir()
和fnmatch.fnmatch()
函数完成的,而不是通过实际调用子shell来完成的。请注意,不同的是fnmatch.fnmatch()
,作为特殊情况glob
处理以点(.
)开头的文件名。(对于代字号和外壳变量扩展,请使用os.path.expanduser()
和os.path.expandvars()
。)
对于文字匹配,将元字符括在括号中。例如,'[?]'
匹配字符'?'
。
glob.glob(pathname)
返回匹配路径名
的可能为空的路径名
列表,该列表必须是包含路径规范的字符串。路径名
可以是绝对的(如/usr/src/Python-1.5/Makefile
)或相对的(如../../Tools/*/*.gif
),并且可以包含shell风格的通配符。结果中包含损坏的符号链接(如在shell中)。
glob.iglob(pathname)
返回一个产生相同值的迭代器,glob()
而不是实际同时存储它们。
2.5版本中的新功能。
例如,只考虑包含以下文件的目录: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']
另请参阅
Module
fnmatch
Shell风格的文件名(不是路径)扩展