--

利用 glob 查找匹配的文件名



详细文档见于: glob


  
import glob
glob.glob('./[0-9].*')
# return ['./1.gif', './2.txt']

glob.glob('*.gif')
# return ['1.gif', 'card.gif']

glob.glob('?.gif')
# return ['1.gif']

glob.glob('**/*.txt', recursive=True)
# return ['2.txt', 'sub/3.txt']

glob.glob('./**/', recursive=True)
# return ['./', './sub/']



除了 glob.glob, 还有两个接口:

glob.iglob(pathname, *, recursive=False)
返回一个迭代器,而不是一个list,你还是可以用一个 for 来访问,得到的内容和 glob.glob() 相同


glob.escape(pathname)
保留 pathname 中的特殊字符,这个在你查找一些有特殊字符的文件名的时候会比较有用,
比如,在 Windows 下调用 escape('//?/c:/Quo vadis?.txt'),就能返回 '//?/c:/Quo vadis[?].txt'.


另外对于 linux 下的 以 . 开头的隐藏文件,默认是不匹配的,如果需要考虑的话,需要显示写一个 '.', 比如这样:

  
import glob
glob.glob('*.gif')
# return ['card.gif']

glob.glob('.c*')
# return ['.card.gif']