glob模块是Python最简单的模块之一, 内容非常少, 用它可以查找符合特定规则的文件路径名, 查找文件时只会用到三个匹配符:
*
: 匹配0个或多个字符?
: 匹配单个字符[]
: 匹配指定范围内的字符, 如[0-9]匹配数字
glob.glob()
参数:_(str)
: 文件路径的正则表达式
返回值:_(list)
: 符合正则表达式的文件路径列表
备注:
返回所有匹配的文件路径列表, 它只有一个参数pathname, 定义了文件路径匹配的规则, 这里可以是绝对路径或者相对路径:1
2
3
4
5
6import glob
pathes_list = glob.glob("~/Pictures/*.jpg")
# 获取Pictures下的所有图片
relative_pathes_list = glob.glob("../*.py")
# 获取上级目录中的所有.py文件
在 linux, osx 系统中, 通配符的匹配是大小写区分的, 也就是需要特别指定大小写:1
extensions = ['jpg', 'JPG', 'jpeg', 'JPEG']
但是在 windows 当中, 通配符的匹配是不区分大小写的, 因此只需要指定大小写中的一个即可, 两个都指定的话, 会出现重复的情况1
extensions = ['jpg', 'jpeg']
glob.iglob
获取一个可遍历的对象, 使用它可以逐个获取匹配的文件路径名. 与glob.glob()
的区别是: glob.glob()
会同时获取到所有的匹配路径, 而glob.iglob()
一次只获取一个匹配路径.1
2
3
4f = glob.iglob("../*.py")
print f # <generator object iglob at 0x00B9FF80>
for py in f:
print(py)