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

冷炫風刃
发布: 2025-11-21 23:10:05
原创
972人浏览过
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 等的文件名(不包含子目录中的)。

立即学习Python免费学习笔记(深入)”;

支持的通配符

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

php 配置文件php.ini的中文注释版(09.4)
php 配置文件php.ini的中文注释版(09.4)

在WINDOWS下,编译时的路径是WINDOWS安装目录。 ; 在命令行模式下,PHP.INI的查找路径可以用 -C 参数替代。 ; 该文件的语法非常简单。空白字符和用分号´;´开始的行被简单地忽略(就象你可能 ; 猜到的一样)。 章节标题(例如 : [FOO])也被简单地忽略,即使将来它们可能 ; 有某种的意义。 ; ;

php 配置文件php.ini的中文注释版(09.4) 435
查看详情 php 配置文件php.ini的中文注释版(09.4)
  • *:匹配任意数量的字符(不含路径分隔符)
    例:*.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 是一个轻量、直观的工具,适合大多数日常文件搜索任务,不需要引入复杂逻辑就能快速定位目标文件。

以上就是Python 使用 glob 匹配文件路径模式的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号