目录
获取特定扩展名的所有文件
获取特定目录下的所有文件
递归获取所有文件
转义特殊字符
iglob
glob 是 Python 中用于文件模式匹配的一个模块。它使用 Unix shell-style 的通配符来进行匹配,并返回所有匹配的文件路径列表。
下面是一些 glob 的基本用法:
如果你想获取当前目录下所有的 .txt 文件,可以使用:
import glob
txt_files = glob.glob('*.txt')
print(txt_files)
如果你想获取 data 目录下所有的文件,可以使用:
import glob
all_files = glob.glob('./*')
print(all_files)
使用 ** 可以递归地匹配所有子目录中的文件。例如,获取 data 目录及其所有子目录下的 .txt 文件:
import glob
txt_files_recursive = glob.glob('data/**/*.txt', recursive=True)
注意:recursive=True 参数确保模式会递归地匹配子目录。这在 glob 的某些版本中可能是必需的。
如果你需要匹配的文件名包含特殊字符(如 [、]、*、? 等),你可以使用 glob.escape 来转义这些字符:
import glob
escaped_pattern = glob.escape('my[special]file*')
matched_files = glob.glob(escaped_pattern)
除了 glob 函数外,glob 模块还提供了一个 iglob 函数,它是一个迭代器版本的 glob。当你处理大量文件时,使用 iglob 可以节省内存,因为它不会一次性加载所有匹配的文件路径,而是每次迭代时加载一个。
import glob
for file in glob.iglob('*.txt'):
print(file)