千家信息网

如何使用fnmatch模块

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,今天就跟大家聊聊有关如何使用fnmatch模块,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。fnmatch模块的使用此模块的主要作用是文件名称
千家信息网最后更新 2025年12月03日如何使用fnmatch模块

今天就跟大家聊聊有关如何使用fnmatch模块,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。


fnmatch模块的使用

此模块的主要作用是文件名称的匹配,并且匹配的模式使用的unix shell风格。
fnmatch比较简单就4个方法分别是:fnmatch,fnmatchcase,filter,translate

1.fnmatch

fnmatch.fnmatch(filename, pattern)
测试filename,是否符合pattern。

import fnmatch
import os
def run():
for file in os.listdir('.'): #os.listdir返回指定的文件夹包含的文件或文件夹的名字的列表
if fnmatch.fnmatch(file, '*.py'): #判断是否有后缀为.py的文件,*代表文件名长度格式不限制。
print(file)
if __name__ == '__main__':
run()

2.fnmatchcase

fnmatch.fnmatchcase(filename, pattern)
和fnmatch()类似,只是fnmatchcase 强制区分大小写匹配,不管文件系统是否区分。

  print(fnmatch.fnmatchcase("text.py","text.*"))  #True
print(fnmatch.fnmatchcase("Text.py", "text.*")) # False
print(fnmatch.fnmatchcase("Text.Py", "*.py")) # False
print(fnmatch.fnmatchcase("Text.Py", "*.Py")) # True

3.filter

fnmatch.filter(names, pattern)
实现列表特殊字符的过滤或筛选,返回符合匹配模式的字符列表,它的作用类似
[n for n in names if fnmatch(n, pattern)]

  filelist=["a.text","b.jpg","c.png","d.py",'e.text',"sss.py"]
print(fnmatch.filter(filelist,"?.py")) #匹配前面是一个字符的.py文件
输出:d.py

4.translate

fnmatch.translate(pattern):
翻译模式, fnmatch将这种全局模式转换成一个正则式, 然后使用re模块来比较名字和模式。 translate() 函数是一个公共API用于将全局模式转换成正则式

regex = fnmatch.translate('[f,d,d,d,g,h].txt')#将[f,d,d,d,g,h].txt转为正则匹配的模式
print("regex",regex)#(?s:[f,d,d,d,g,h]\.txt)\Z
#\Z:匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。
reobj = re.compile(regex)#生成re匹配模块
print(reobj.match ('f.txt'))#返回一个匹配对象
#<_sre.SRE_Match object; span=(0, 5), match='f.txt'>

看完上述内容,你们对如何使用fnmatch模块有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

文件 模式 模块 字符 内容 正则 作用 全局 名字 字符串 文件夹 特殊 代表 函数 只是 名称 后缀 大小 对象 文件名 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 外包软件开发模板 有特殊符号怎么插入到数据库 学习数据库管理系统意义 网络安全人人有责绘画模板 网络安全宣传周答案 中职学校网络安全培训 五年级网络安全文字 数据结构和数据库的区别 手机软件开发 案例分析 数据库中stu什么意思 怎么设教学数据库三个关系 天津网络技术开发创新服务 井陉互联网软件开发欢迎咨询 python 数据库访问队列 北京高性能服务器什么价位 甘肃城管通软件开发系统 服务器能连接几台设备 网络软件开发定制收费 手机修改网络安全设置 数据库视图是用什么构成的 苏州软件开发培训机构哪家 项目网络安全方案 网络安全宣传周答案 市委 网络安全自查总结报告 计算机网络安全期末考试重点 数据库实时导入solr 数据库字符串连接 常熟进口网络技术诚信经营 数据库打破国外垄断 我的世界服务器外面的图片怎么改
0