参考声明:https://blog.csdn.net/lanchunhui/article/details/70170813
https://blog.csdn.net/lanchunhui/article/details/70170813
0.摘要:
glob是实用的文件名匹配库,glob.glob()函数将会匹配给定路径下的所有pattern,并以列表形式返回。
用它可以查找符合特定规则的文件路径名。查找文件只用到三个匹配符:
- ”
*
”, 匹配 0 个或多个字符; - “?”, ”?”匹配单个字符;
- “[]”:”[]”匹配指定范围内的字符,如:[0-9]匹配数字;
注意:如果文件名以“点”开头 ,无法被 '*' 和 '?'匹配,如:".card.gif"
1. glob方法:
glob模块的主要方法就是glob,该方法返回所有匹配的文件路径列表(list);
该方法需要一个参数用来指定匹配的路径字符串(字符串可以为绝对路径也可以为相对路径),其返回的文件名只包括当前目录里的文件名,不包括子文件夹里的文件。
比如:
是获得C盘下的所有txt文件:
glob.glob(r’c:*.txt’)
获取指定目录下的所有图片:
print glob.glob(r"E:/Picture/*/*.jpg")
使用相对路径:
glob.glob(r’../*.py’)
注意:在Windows操作系统下,模式M*可以匹配名称以m和M开头的所有文件,因为文件名称和文件名称通配是不区分大小写的。在大多数其他操作系统上,通配是区分大小写的。
2示例:
extensions = ['jpg', 'jpeg', 'JPG', 'JPEG']
file_list = []
dir_name = './data/'
for extension in extensions:
file_glob = os.path.join(INPUT_DATA, dir_name, "*." + extension)
file_list.extend(glob.glob(file_glob))
print("Size of this file_list is :",len(file_list))
但在windows系统下,第一句这样写是有问题的:
由于windows系统下,文件名不区分大小写,所以应写作:
extensions = ['jpg', 'jpeg']
否则,文件会统计两遍。