glob通过使用通配符.*?
,找出所有匹配特定模式的路径名
考虑一个包含以下内容的目录data
\__ data
\__ 1.gif
\__ 2.txt
\__ card.gif
\__ .card.gif
\__ sub
\__ 3.txt
glob() 将产生如下结果(路径的任何开头部分都将被保留):
import glob
files = glob.glob('./data/[0-9].*')
print(files)
files = glob.glob('./data/*.gif')
print(files)
files = glob.glob('./data/?.gif')
print(files)
"""
If recursive is true, the pattern '**' will match any files and zero or more directories and subdirectories.
"""
files = glob.glob('./data/**/*.txt', recursive=True)
print(files)
files = glob.glob('./data/**/', recursive=False)
print(files)
结果:
['./data/1.gif', './data/2.txt']
['./data/1.gif', './data/card.gif']
['./data/1.gif']
['./data/2.txt', './data/sub/3.txt']
['./data/sub/']
注意到glob.glob('./data/*.gif')
没有匹配到文件./data/.card.gif
. 如果目录包含以 . 打头的文件,默认将不会被匹配, 可使用如下方式匹配。
files = glob.glob('./data/*.gif')
print(files)
# 不会匹配.开头的文件,使用如下方式匹配
files = glob.glob('./data/.c*')
print(files)
['./data/1.gif', './data/card.gif']
['./data/.card.gif']
网友评论