news 2026/8/22 16:07:59

`import fnmatch` 是 Python 中导入标准库模块 `fnmatch` 的语句

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
`import fnmatch` 是 Python 中导入标准库模块 `fnmatch` 的语句

import fnmatch是 Python 中导入标准库模块fnmatch的语句。该模块用于基于 Unix shell 风格通配符(如*?[abc])进行文件名或字符串的模式匹配,常用于文件过滤(例如配合os.listdir()使用),但不支持正则表达式语法

常用函数包括:

  • fnmatch.fnmatch(filename, pattern):判断单个字符串是否匹配通配符模式(区分大小写,Windows 下默认不区分);
  • fnmatch.fnmatchcase(filename, pattern):严格区分大小写的匹配;
  • fnmatch.filter(names, pattern):对字符串列表进行批量匹配筛选;
  • fnmatch.translate(pattern):将 shell 通配符模式转换为等价的正则表达式(供高级使用)。

示例:

importfnmatchimportos files=os.listdir('.')py_files=fnmatch.filter(files,"*.py")print(py_files)# 输出所有以 .py 结尾的文件名

注意:fnmatch适用于简单模式匹配;如需复杂逻辑,请使用re模块。

fnmatchre(正则表达式)模块在 Python 中都用于模式匹配,但设计目标、语法能力与适用场景有本质区别:

核心区别总结:

维度fnmatchrere模块)
设计目的模拟 Unix shell 通配符(如*.txt,file[0-9].log),专为文件名/简单字符串匹配优化提供通用、强大、图灵完备的正则表达式引擎,适用于任意文本结构解析
语法风格Shell 风格:*(任意字符序列)、?(单个任意字符)、[abc][a-z](字符类)PCRE 衍生语法:.*.+\d^$、分组( )、捕获、断言、贪婪/非贪婪等
功能能力❌ 不支持捕获组、反向引用、零宽断言、替换、编译复用(虽可fnmatch.translate()转正则,但非原生)
✅ 简单、安全、轻量,无注入风险(不执行任意代码)
✅ 支持捕获、替换(re.sub)、编译缓存(re.compile)、多标志(re.IGNORECASE)、性能优化(预编译)
⚠️ 复杂正则易写错,过度使用可能影响可读性与性能
典型用途os.listdir()过滤文件名、glob.glob()底层支撑、配置项通配匹配(如日志轮转规则)文本抽取(邮箱、URL、JSON 字段)、格式校验(密码强度、手机号)、日志解析、HTML/XML 片段提取等
大小写敏感性取决于平台:Windows 默认不区分,Linux/macOS 区分;可用fnmatchcase()强制区分默认区分,通过re.IGNORECASE标志控制

📌一句话概括

fnmatch是「轻量级文件名通配器」,追求简洁与安全性;
re是「工业级文本处理引擎」,追求表达力与灵活性。

示例对比(匹配以test开头、下划线后接数字、以.py结尾的文件):

importfnmatch,re name="test_123.py"# fnmatch —— 简洁直观print(fnmatch.fnmatch(name,"test_[0-9]*.py"))# True(注意:[0-9]* 中 * 是 fnmatch 的通配符,非正则)# re —— 更精确可控(支持 \d、+、边界等)print(bool(re.fullmatch(r"test_\d+\.py",name)))# True(需转义点号,\d+ 表示一个及以上数字)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 16:06:44

主题公园移动供电案例:从环球影城场景,看户外频繁插拔工况下工业连接器选型思路

提到北京环球影城,大家最先想到哈利波特、变形金刚、功夫熊猫等经典 IP、沉浸式游乐项目与盛大的花车巡游。很少有人留意,支撑整场园区运营、保障花车、餐饮餐车持续运转的,是一套稳定可靠的移动临时供电系统。 作为国内头部主题度假区&#…

作者头像 李华
网站建设 2026/8/22 15:56:29

PyULog:8条命令解析PX4 ULog日志,导出CSV、KML与SQLite

PyULog:8条命令解析PX4 ULog日志,导出CSV、KML与SQLite 【免费下载链接】pyulog Python module & scripts for ULog files 项目地址: https://gitcode.com/gh_mirrors/py/pyulog PyULog是Python ULog日志解析与转换工具包,把PX4飞…

作者头像 李华
网站建设 2026/8/22 15:54:08

RDMA数据传输操作:Send/Recv与Read/Write全解析

摘要: 本文深入解析RDMA的四种核心数据传输操作:Send/Recv与Read/Write。我们将探讨消息语义与内存语义的本质区别,剖析RDMA如何通过硬件级授权实现“零拷贝”与“零CPU干预”。结合AI大模型训练中的GPUDirect RDMA实战场景,带你彻…

作者头像 李华
网站建设 2026/8/22 15:51:21

AnythingLLM 教程:10 分钟搭建一个本地私有知识库问答应用

AnythingLLM 教程:10 分钟搭建一个本地私有知识库问答应用 【免费下载链接】anything-llm Stop renting your intelligence. Own it with AnythingLLM. Everything you need for a powerful local-first agent experience 项目地址: https://gitcode.com/GitHub_…

作者头像 李华