- glob是Python内置的文件操作模块,可用于查找指定条件的文件路径。支持通配符如下:
通配符 | 含义 |
---|---|
* | 代表0个或多个字符 |
? | 代表一个字符 |
[] | 匹配指定范围的字符,如[0-9]即匹配0~9的数字 |
- .. 代表上一级目录。
1. glob()方法
- 参数是指定匹配的路径字符串(可以是相对路径或绝对路径),返回值为列表,列表中保存着所有匹配的文件路径。返回的文件名中只包括指定目录里的文件名,不包括指定目录的子文件夹中的文件。
1. 使用绝对路径
import glob
file_list1 = glob.glob(r'd:/*.txt')
file_list2 = glob.glob(r'd:/*/*.txt')
print(file_list1)
print(file_list2)
运行结果如下:
['d:/secret.txt']
['d:/Anaconda\\LICENSE_PYTHON.txt', 'd:/Anaconda\\vscode_eula.txt', 'd:/phpStudy\\使用说明.txt', 'd:/qqpcmgr_docpro\\关于本文件夹的说明2.0.txt', 'd:/yolov5-6.1\\requirements.txt']
2. 使用相对路径
import glob
file_list2 = glob.glob(r'./*/*/正常/老人/*.png') # ./代表当前文件所在的目录下
print(file_list2)
运行结果:
['.\\人脸表情\\人脸表情\\正常\\老人\\101.png', '.\\人脸表情\\人脸表情\\正常\\老人\\118.png', '.\\人脸表情\\人脸表情\\正常\\老人\\127.png', '.\\人脸表情\\人脸表情\\正常\\老人\\19.png', '.\\人脸表情\\人脸表情\\正常\\老人\\21.png', '.\\人脸表情\\人脸表情\\正常\\老人\\36.png', '.\\人脸表情\\人脸表情\\正常\\老人\\38.png', '.\\人脸表情\\人脸表情\\正常\\老人\\42.png']
2. iglob()方法
- 参数是匹配的路径字符串(可以是相对路径或绝对路径),可逐个获取匹配的文件路径名,返回值是一个迭代器对象,需要通过循环遍历来读取迭代器对象中的元素。
import glob
file_list1 = glob.iglob(r'./../*/*/*/*/*.png')
print(file_list1) # <generator object _iglob at 0x000002156779CB30> 返回一个迭代器对象
count = 0
for item in file_list1:
count += 1
print(item)
if count == 10:
break
运行结果:
<generator object _iglob at 0x000002C82538CB30>
./..\数据统计\人脸表情\手势动作\OK\13.png
./..\数据统计\人脸表情\手势动作\剪刀手\1.png
./..\数据统计\人脸表情\手势动作\剪刀手\119.png
./..\数据统计\人脸表情\手势动作\剪刀手\2.png
./..\数据统计\人脸表情\手势动作\剪刀手\52.png
./..\数据统计\人脸表情\手势动作\拒绝\1.png
./..\数据统计\人脸表情\手势动作\拒绝\120.png
./..\数据统计\人脸表情\手势动作\捂脸\10.png
./..\数据统计\人脸表情\手势动作\捂脸\11.png
./..\数据统计\人脸表情\手势动作\捂脸\12.png