Python通过fnmatch模块实现文件名匹配


Posted in Python onSeptember 30, 2020

fnmatch 模块主要用于文件名称的匹配,其能力比简单的字符串匹配更强大,但比使用正则表达式相比稍弱。。如果在数据处理操作中,只需要使用简单的通配符就能完成文件名的匹配,则使用 fnmatch 模块是不错的选择。

fnmatch 模块中,常用的函数及其功能如表 1 所示。

Python fnmatch模块常用函数及功能

函数名 功能
fnmatch.filter(names, pattern) 对 names 列表进行过滤,返回 names 列表中匹配 pattern 的文件名组成的子集合。
fnmatch.fnmatch(filename, pattern) 判断 filename 文件名,是否和指定 pattern 字符串匹配
fnmatch.fnmatchcase(filename, pattern) 和 fnmatch() 函数功能大致相同,只是该函数区分大小写。
fnmatch.translate(pattern) 将一个 UNIX shell 风格的 pattern 字符串,转换为正则表达式

fnmatch 模块匹配文件名的模式使用的就是 UNIX shell 风格,其支持使用如下几个通配符:

  • *:可匹配任意个任意字符。
  • ?:可匹配一个任意字符。
  • [字符序列]:可匹配中括号里字符序列中的任意字符。该字符序列也支持中画线表示法。比如 [a-c] 可代表 a、b 和 c 字符中任意一个。
  • [!字符序列]:可匹配不在中括号里字符序列中的任意字符。

例如,下面程序演示表 1 中一些函数的用法及功能:

import fnmatch
#filter()
print(fnmatch.filter(['dlsf', 'ewro.txt', 'te.py', 'youe.py'], '*.txt'))
#fnmatch()
for file in ['word.doc','index.py','my_file.txt']:
if fnmatch.fnmatch(file,'*.txt'):
print(file)
#fnmatchcase()
print([addr for addr in ['word.doc','index.py','my_file.txt','a.TXT'] if fnmatch.fnmatchcase(addr, '*.txt')])
#translate()
print(fnmatch.translate('a*b.txt'))

程序执行结果为:

['ewro.txt']
my_file.txt
['my_file.txt']
(?s:a.*b\.txt)\Z

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python查询mysql中文乱码问题
Nov 09 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
Python中基础的socket编程实战攻略
Jun 01 Python
Python调用微信公众平台接口操作示例
Jul 08 Python
Python字符串格式化的方法(两种)
Sep 19 Python
使用实现pandas读取csv文件指定的前几行
Apr 20 Python
python requests 测试代理ip是否生效
Jul 25 Python
python环形单链表的约瑟夫问题详解
Sep 27 Python
用scikit-learn和pandas学习线性回归的方法
Jun 21 Python
react+django清除浏览器缓存的几种方法小结
Jul 17 Python
Python+OpenCV实现图像的全景拼接
Mar 05 Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 Python
Python tempfile模块生成临时文件和临时目录
Sep 30 #Python
Python实现定时监测网站运行状态的示例代码
Sep 30 #Python
python如何实现word批量转HTML
Sep 30 #Python
Python识别验证码的实现示例
Sep 30 #Python
Python列表嵌套常见坑点及解决方案
Sep 30 #Python
python实现感知机模型的示例
Sep 30 #Python
python 实现关联规则算法Apriori的示例
Sep 30 #Python
You might like
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
JS动画效果代码3
2008/04/03 Javascript
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
python基于右递归解决八皇后问题的方法
2015/05/25 Python
Python 3中的yield from语法详解
2017/01/18 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
如何基于Python批量下载音乐
2019/11/11 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
详解python metaclass(元类)
2020/08/13 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
英国电器零售商:PRC Direct
2018/06/21 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
求职自荐信
2013/12/14 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
病房管理制度范本
2015/08/06 职场文书
中秋节祝酒词
2015/08/12 职场文书
python not运算符的实例用法
2021/06/30 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python