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导入txt数据到mysql的方法
Apr 08 Python
Python基于Tkinter实现的记事本实例
Jun 17 Python
Python装饰器使用实例:验证参数合法性
Jun 24 Python
Python命令启动Web服务器实例详解
Feb 23 Python
Python 类的继承实例详解
Mar 25 Python
python中lambda()的用法
Nov 16 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
dataframe设置两个条件取值的实例
Apr 12 Python
python获取地震信息 微信实时推送
Jun 18 Python
python3.7 openpyxl 删除指定一列或者一行的代码
Oct 08 Python
numpy:找到指定元素的索引示例
Nov 26 Python
Python谱减法语音降噪实例
Dec 18 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限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
JS trim去空格的最佳实践
2011/10/30 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
javascript动态设置样式style实例分析
2015/05/13 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
js运动应用实例解析
2015/12/28 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
Python装饰器的执行过程实例分析
2018/06/04 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
幼儿园教师请假制度
2014/01/16 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
个人作风建设心得体会
2014/10/22 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
升学宴祝酒词
2015/08/11 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android