前言
1、glob模块可以查找符合特定规则的文件路径名,跟使用windows下的文件搜索差不多。
2、查找文件只用到三个匹配符:*,?, []。
①*通配符:匹配0个或多个字符; ②?单个字符通配符:匹配单个字符; ③[]字符范围:匹配指定范围内的字符,如:[0-9]匹配数字。
glob模块的用法
glob.glob
①返回所有匹配的文件路径列表。
②只有一个参数 pathname :定义了文件路径匹配规则;可以是绝对路径,可以是相对路径。
代码示例:
import glob #获取指定目录下的所有图片 print (glob.glob(r"/home/qiaoyunhao/*/*.png"),"\n")#加上r让字符串不转义 #获取上级目录的所有.py文件 print (glob.glob(r'../*.py')) #相对路径
运行结果:
glob.iglob
①获取一个可编历对象,使用它可以逐个获取匹配的文件路径名。
②与 glob.glob()的区别: glob.glob()同时获取所有的匹配路径;而 glob.iglob()一次只获取一个匹配路径。
代码示例:
import glob #父目录中的.py文件 f = glob.iglob(r'../*.py') print (f) #<generator object iglob at 0x00B9FF80> for py in f: print (py)
运行结果:
查找路径
通配符
星号(*)匹配零个或多个字符
代码示例
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 for name in glob.glob('dir/file?.txt'): print (name)
运行结果:
dir/file1.txt dir/file2.txt dir/filea.txt dir/fileb.txt
字符范围
当需要匹配一个特定的字符,[]表示匹配指定范围内的字符。
代码示例:
import glob for name in glob.glob('dir/*[0-9].*'): print (name)
运行结果:
dir/file1.txt dir/file2.txt