glob模块用于文件路径名模式匹配,支持、?、*、[]等通配符,提供glob()、iglob()、escape()函数,可高效查找或遍历符合规则的文件,适用于日志分析、批量处理等场景。

glob 是 Python 标准库中的一个模块,用于查找符合特定规则的文件路径名,常用于文件搜索和批量处理。它使用类似于 Unix shell 的通配符模式来匹配文件或目录名,操作简单且高效。
基本功能和常用通配符
glob 模块最核心的功能是通过模式匹配查找文件路径。常用的通配符包括:
- * 匹配任意数量的字符(不包含路径分隔符)
- ? 匹配单个字符
- ** 递归匹配所有子目录(需设置 recursive=True)
- [] 匹配指定范围内的字符,如 [0-9]、[a-z]
例如,*.txt 可以匹配当前目录下所有以 .txt 结尾的文件。
常用函数说明
glob 提供了几个主要函数来满足不同需求:
立即学习“Python免费学习笔记(深入)”;
- glob.glob(pattern, recursive=False):返回匹配模式的所有路径名列表
- glob.iglob(pattern, recursive=True):返回一个迭代器,节省内存,适合处理大量文件
- glob.escape(path):对路径中的特殊字符进行转义,防止通配符被误解析
示例代码:
import glob查找当前目录所有 .py 文件
py_files = glob.glob("*.py") print(py_files)
递归查找所有子目录中的 .py 文件
all_py = glob.glob("*/.py", recursive=True) print(all_py)
使用迭代器逐个处理
for file_path in glob.iglob("*/.txt", recursive=True): print(file_path)
实际应用场景
glob 常用于需要批量操作文件的场景,比如:
- 读取某个目录下的所有日志文件进行分析
- 批量重命名或移动特定类型的文件
- 在数据处理任务中加载多个数据文件(如 CSV、JSON)
相比直接使用 os.listdir() 配合字符串匹配,glob 更简洁直观,特别适合基于命名模式的操作。
基本上就这些。用好 glob 能让文件路径查找变得更轻松。











