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实现多线程采集的2个代码例子
Jul 07 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
May 02 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
python 移除字符串尾部的数字方法
Jul 17 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
Apr 14 Python
python将dict中的unicode打印成中文实例
May 11 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 15 Python
python 用递归实现通用爬虫解析器
Apr 16 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中addslashes函数与sql防注入
2014/11/17 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
jQuery插件开发详细教程
2014/06/06 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
Python创建xml的方法
2015/03/10 Python
python清除指定目录内所有文件中script的方法
2015/06/30 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
Python协程的用法和例子详解
2017/09/09 Python
教你用Python写安卓游戏外挂
2018/01/11 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
Vrbo英国:预订度假屋
2020/08/19 全球购物
人力资源部经理岗位职责规定
2014/02/23 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
整脏治乱工作简报
2015/07/21 职场文书
redis内存空间效率问题的深入探究
2021/05/17 Redis
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers