glob模块 文件通配符 glob模块提供了一个函数用于从目录通配符搜索中生成文件列表

glob 模块可根据 Unix 终端所用规则找出所有匹配特定模式的路径名,但会按不确定的顺序返回结果。
参见 pathlib 模块提供高级路径对象。
glob.glob(pathname, , recursive=False)
返回匹配 pathname 的可能为空的路径名列表,其中的元素必须为包含一个路径信息的字符串。 pathname 可以是绝对路径 (如 /usr/src/Python-1.5/Makefile) 或相对路径 (如 …/…/Tools/
/*.gif),并且可包含 shell 风格的通配符。 结果也将包含无效的符号链接 (与在 shell 中一致)。 结果是否排序取决于具体文件系统。

如果 recursive 为真值,则模式 “**” 将匹配目录中的任何文件以及零个或多个目录、子目录和符号链接。 如果模式加了一个 os.sep 或 os.altsep 则将不匹配文件。

引发一个 审计事件 glob.glob 附带参数 pathname, recursive。

注解 在一个较大的目录树中使用 “**” 模式可能会消耗非常多的时间。

例如,考虑一个包含以下内容的目录:文件 1.gif, 2.txt, card.gif 以及一个子目录 sub 其中只包含一个文件 3.txt. glob() 将产生如下结果。 请注意路径的任何开头部分都将被保留。:

>>> import glob
>>> glob.glob('./[0-9].*')
['./1.gif', './2.txt']
>>> glob.glob('*.gif')
['1.gif', 'card.gif']
>>> glob.glob('?.gif')
['1.gif']
>>> glob.glob('**/*.txt', recursive=True)
['2.txt', 'sub/3.txt']
>>> glob.glob('./**/', recursive=True)
['./', './sub/']

如果目录包含以 . 打头的文件,它们默认将不会被匹配。 例如,考虑一个包含 card.gif 和 .card.gif 的目录:

>>> import glob
>>> glob.glob('*.gif')
['card.gif']
>>> glob.glob('.c*')
['.card.gif']

猜你喜欢

转载自blog.csdn.net/liu201812/article/details/107998788