python官方文档

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']
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐