Python glob:轻松实现文件快速查找

01-24 3140阅读

在日常的编程工作中,我们常常需要在大量文件中查找符合特定模式的文件。Python 的 glob 模块提供了一种简单而高效的方式来完成这个任务。

glob 模块用于查找符合特定模式的文件路径名。它使用 Unix 风格的路径名模式来匹配文件和目录。例如,*.py 可以匹配所有以 .py 结尾的文件,dir/*.txt 可以匹配 dir 目录下所有以 .txt 结尾的文件。

import glob

# 获取当前目录下所有的.py 文件
python_files = glob.glob('*.py')
for file in python_files:
    print(file)

在这段代码中,glob.glob('*.py') 返回一个列表,包含当前目录下所有以 .py 结尾的文件路径。然后通过循环遍历这个列表,打印出每个文件的路径。

Python glob:轻松实现文件快速查找

如果要查找更复杂的模式,比如在多层目录下查找特定文件,可以使用递归的方式。例如,查找当前目录及其所有子目录下的 .txt 文件:

import glob

# 获取当前目录及其子目录下所有的.txt 文件
txt_files = glob.glob('**/*.txt', recursive=True)
for file in txt_files:
    print(file)

这里的 ** 表示递归匹配所有子目录,recursive=True 参数确保 glob 进行递归查找。

glob 模块还支持多种通配符。? 可以匹配单个任意字符,例如 file?.txt 可以匹配 file1.txtfile2.txt 等,但不能匹配 file.txt[] 用于匹配方括号内指定的任意一个字符,比如 [abc].txt 可以匹配 a.txtb.txtc.txt

在实际应用中,当我们需要对一批文件进行批量处理时,glob 模块就显得尤为有用。比如要对所有找到的 .py 文件进行语法检查,可以先使用 glob 找到所有文件,然后再逐个进行处理。

总之,Python 的 glob 模块为我们提供了一种便捷的方式来快速查找指定模式的文件。无论是简单的单层目录匹配还是复杂的递归多层目录匹配,都能轻松应对。它是文件操作中一个非常实用的工具,能大大提高我们处理文件相关任务的效率。建议在日常编程中,当涉及到文件查找需求时,优先考虑使用 glob 模块,它能让代码更加简洁高效。

文章版权声明:除非注明,否则均为Dark零点博客原创文章,转载或复制请以超链接形式并注明出处。