python 路径遍历神库 glob

2020-04-08  本文已影响0人  夏威夷的芒果

python标准库之glob介绍

glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。
查找文件只用到三个匹配符:”*”, “?”, “[]”。

1、通配符

import glob
for name in glob.glob('dir/*'):
    print (name)

输出:

dir/file.txt
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
dir/subdir
import glob

#用子目录查询文件 
print ('Named explicitly:') 
for name in glob.glob('dir/subdir/*'): 
    print ('\t', name)

#用通配符* 代替子目录名 
print ('Named with wildcard:') 
for name in glob.glob('dir/*/*'): 
    print ('\t', name)</pre>

输出

Named explicitly:
        dir/subdir/subfile.txt
Named with wildcard:
        dir/subdir/subfile.txt
import glob
print(glob.glob(r"C:/Users/zhf/Desktop/flower/flower_photos/daisy/*.jpg"))

输出列表

['C:/Users/zhf/Desktop/flower/flower_photos/daisy\\100080576_f52e8ee070_n.jpg',
...,
'C:/Users/zhf/Desktop/flower/flower_photos/daisy\\10140303196_b88d3d6cec.jpg']

获取目录下所有文件

import glob
glob.glob("*")

注意,也可以使用iglob,其与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而glob.iglob一次只获取一个匹配路径。
2、单个字符通配符
用问号(?)匹配任何单个的字符。

import glob
for name in glob.glob('dir/file?.txt'):
    print (name)

输出

dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt

3、字符范围

当需要匹配一个特定的字符,可以使用一个范围

import glob
for name in glob.glob('dir/*[0-9].*'):
    print (name)

输出

dir/file1.txt
dir/file2.txt
上一篇 下一篇

猜你喜欢

热点阅读