登录
首页 >  文章 >  python教程

Pythonglob文件匹配技巧全解析

时间:2025-11-22 09:51:34 310浏览 收藏

怎么入门文章编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《Python glob 匹配文件路径模式详解》,涉及到,有需要的可以收藏一下

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

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

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

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

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

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

import glob

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

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

支持的通配符

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

  • *:匹配任意数量的字符(不含路径分隔符)
    例:*.txt 匹配所有文本文件
  • ?:匹配单个字符
    例:file?.log 匹配 file1.logfileA.log
  • [...]:匹配括号内的任意一个字符
    例:image[0-9].png 匹配 image1.pngimage9.png
  • **:递归匹配所有子目录(需启用 recursive=True
    例:**/*.py 查找所有子目录中的 Python 文件

递归查找:使用 ** 和 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 时需要注意以下几点:

  • 路径分隔符建议使用正斜杠 / 或双反斜杠 \\,Python 能正确识别;在跨平台脚本中推荐用 os.path.join() 或直接写 /
  • glob 返回的是字符串列表,不会区分文件和目录,如果需要判断可用 os.path.isfile()
  • 如果想获取绝对路径,可以结合 os.path.abspath() 使用
  • 对于更复杂的匹配需求,可考虑使用 pathlib.Path.glob() 方法,语法类似且更现代

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

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>