总结
豆包 AI 助手文章总结

Python中glob模块 文件路径匹配模块glob的通配符使用技巧

下次还敢
发布: 2025-06-08 23:36:10
原创
923人浏览过

python的glob模块通过通配符匹配文件路径,常用符号包括、?和[]。匹配任意数量字符但不跨目录,如.txt匹配当前目录所有.txt文件;*搭配recursive=true可递归搜索;?匹配单个字符,如log_2024-01-0?.log适用于固定格式变化日志;[]限定字符集合,如[abc].txt匹配a/b/c.txt;注意默认不报错无结果且区分大小写环境差异。

在Python中,glob模块常用于查找符合特定规则的文件路径名。它不像正则那样复杂,但通配符的使用技巧足够应对大多数日常需求。关键在于掌握几个常用符号,并知道它们适用的场景。


通配符 * 的灵活用法

* 是最常用的通配符之一,代表“任意数量的字符(不包括目录分隔符)”。比如:

  • *.txt:匹配当前目录下所有以 .txt 结尾的文件。
  • data_*.csv:匹配类似 data_2023.csv、data_backup.csv 这样的文件名。

一个容易忽略的地方是,* 不会跨目录匹配。例如,*/\*.py 可以匹配子目录中的 .py 文件,但不会进入更深一层的子目录。

如果你想递归搜索所有子目录下的 .py 文件,可以使用 **/ 搭配 recursive=True 参数:

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

import glob

glob.glob('**/*.py', recursive=True)
登录后复制

这样就能遍历所有层级目录中的 Python 文件了。


使用 ? 匹配单个字符

? 表示匹配任意一个字符。这个功能适合处理有固定格式但部分内容变化的文件名,比如日志文件:

  • log_2024-01-0?.log 可以匹配 log_2024-01-01.log 到 log_2024-01-09.log。
  • file_v?.txt 能匹配 file_v1.txt、file_v2.txt 等。

注意,? 只能匹配一个字符,不能多也不能少。如果你不确定位数,还是用 * 更合适。


使用 [ ] 匹配指定范围的字符

方括号用于限定某一位置上允许出现的字符集合,比如:

  • [abc].txt 可以匹配 a.txt、b.txt 和 c.txt。
  • [0-9].csv 匹配以数字命名的 .csv 文件,如 1.csv、9.csv。
  • [a-zA-Z]_file.txt 匹配首字母为大小写字母的文件,如 A_file.txt 或 z_file.txt。

这在需要精确控制某些字符的情况下非常有用,尤其是批量处理时减少误匹配。


注意事项与常见问题

  • glob 返回的是字符串列表,如果路径不存在,默认也不会报错,只是返回空列表。
  • 如果要区分大小写,在 Windows 上默认不区分,Linux 上则区分。
  • 如果你只需要判断是否存在匹配项而不关心具体有哪些文件,可以用 glob.has_magic() 来判断是否包含通配符。
glob.has_magic("*.txt")   # True
glob.has_magic("hello.txt")  # False
登录后复制

基本上就这些。glob 模块虽然简单,但在实际脚本中很实用。只要理解好通配符的作用范围和限制,就能避免很多路径匹配上的坑。

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

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

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

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

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