文件和目录操作(二)、glob模块

可以搜索符合特定规则的文件路径名。类似于在windows系统中进行文件搜索,查找文件时仅使用三个匹配符:“*”、“?”和“[]”。

  • “*”匹配零个或多个字符;
  • “?”匹配单个字符;
  • “[]”匹配指定范围内的字符,例如:[0-9]匹配数字。

1、glob.glob返回所有匹配的文件路径列表。它仅有一个参数pathname,用于定义文件路径匹配规则,可以是绝对路径或相对路径。以下是使用glob.glob的示例:

import glob
files = glob.glob(r'D:\dataset\INRIA\AerialImageDataset\train\images\*.tif')
print(type(files))
for file in files:
    print(file)
    print('\n')
    print(glob.glob(r'D:\dataset\INRIA\AerialImageDataset\train\images\*.py'))  # 相对路径
    print(file)

返回值是一个列表,搜索博主PC中某目录下所有以.tif结尾的图片文件,然后尝试检索以.py结尾的文件,由于没有找到.py文件,因此返回一个空列表。运行结果如下:

2、glob.iglob返回一个可迭代对象,通过它可以逐个获取匹配的文件路径名。与glob.glob()的区别在于:glob.glob一次性获取所有匹配路径,而glob.iglob每次只获取一个匹配路径。

以下是一个简单的示例:

import glob
# 父目录中的.py文件
f = glob.iglob(r'../*.py')
print(f)  # 
for py in f:
    print(py)