python glob模块文件路径查找

需要掌握:glob介绍

概述

glob是python自带的一个路径匹配模块

用它可以查找符合特定规则的文件路径名。

python3.4开始支持

查找文件只用到三个匹配符:

  • * 匹配0个或多个字符;
  • ? 匹配单个字符;
  • [] 匹配指定范围内的字符,如:[0-9]匹配数字。
  • {}目前不支持

需要导入模块

import glob

该模块有两个方法:

glob.glob()

和

glob.iglob()

glob.glob()

参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径,可以有匹配符
返回所有匹配的文件路径,list类型。

如果路径过多,占用内存较大

获取指定目录下所有.jpg图片

import glob

l=glob.glob(r"E:/Picture/*.jpg")

获取E:/Picture/下所有的.jpg文件

获取指定目录下的所有文件夹的.jpg图片

import glob

l=glob.glob(r"E:/Picture/*/*.jpg")

获取E:/Picture/下所有文件夹的.jpg文件

递归获取目录及所有子目录的.txt文件

l=glob.glob('C:/file/**/*.txt', recursive=True)

递归 获取C:/file/文件夹,及所有文件夹的.txt文件

glob.iglob()

获取一个可编历对象,使用它可以逐个获取匹配的文件路径名。

与glob.glob()的区别是:

  • glob.glob():返回list类型,是所有的匹配路径,如果匹配路径过多,占用内存较大
  • glob.iglob():返回生成器对象,如果匹配路径过多,这种方式比较节省内存
import glob
l=glob.iglob(r"C:\Users\mym\Desktop\*")
print(type(l))
print(l)
for i in l:
    print(i)

执行结果:

<class 'generator'>
<generator object _iglob at 0x000000078AF070A0>

C:\Users\mym\Desktop\1.1.4.406.publish_release.exe
C:\Users\mym\Desktop\3C9E5232425E8882BF1CF2B2B042140C.jpg
C:\Users\mym\Desktop\480x850.txt

感谢:
https://blog.csdn.net/sunhuaqiang1/article/details/70244497