贝利信息

Python 使用 glob 匹配文件路径模式

日期:2025-11-21 00:00 / 作者:冷炫風刃
glob模块用通配符匹配文件路径,支持、?、[]和*等模式,可结合recursive=True递归查找文件,适用于批量处理如列出.py文件,返回字符串列表,建议用/分隔路径,复杂场景可用pathlib替代。

在 Python 中,glob 模块用于查找符合特定规则的文件路径名,使用的是简单的通配符模式匹配,而不是正则表达式。它非常适合批量处理文件,比如读取某个目录下所有 .txt 文件或递归查找特定类型的文件。

基本用法:匹配当前目录下的文件

使用 glob.glob() 可以获取与模式匹配的所有文件路径列表。

例如,列出当前目录下所有以 .py 结尾的文件:

import glob

python_files = glob.glob("*.py")
for file in python_files:
    print(file)

这会返回当前目录中所有形如 script.pymain.py 等的文件名(不包含子目录中的)。

支持的通配符

glob 支持几种常见的通配符来构建匹配模式:

递归查找:使用 ** 和 recursive 参数

要搜索包括子目录在内的所有匹配文件,可使用 ** 并设置 recursive=True

例如,查找项目中所有 Python 文件:

import glob

all_py_files = glob.glob("**/*.py", recursive=True)
for file in all_py_files:
    print(file)

这样可以找到根目录及其任意层级子目录下的 .py 文件,比如:
utils/helper.pytests/unit/test_app.py 等。

注意事项和建议

使用 glob 时需要注意以下几点:

基本上就这些。glob 是一个轻量、直观的工具,适合大多数日常文件搜索任务,不需要引入复杂逻辑就能快速定位目标文件。