python glob用法

2021-07-08  本文已影响0人  ltochange

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']
上一篇 下一篇

猜你喜欢

热点阅读