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中 ? : 三元表达式的使用介绍
Oct 09 Python
pycharm 使用心得(五)断点调试
Jun 06 Python
粗略分析Python中的内存泄漏
Apr 23 Python
在Python的Django框架中创建和使用模版
Jul 15 Python
总结Python编程中函数的使用要点
Mar 20 Python
打包发布Python模块的方法详解
Sep 18 Python
对numpy中数组元素的统一赋值实例
Apr 04 Python
python使用tornado实现简单爬虫
Jul 28 Python
python使用sklearn实现决策树的方法示例
Sep 12 Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 Python
appium+python adb常用命令分享
Mar 06 Python
python 解决Windows平台上路径有空格的问题
Nov 10 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
在项目中寻找代码的坏命名
2012/07/14 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
php生成静态页面的简单示例
2014/04/17 PHP
php简单实现快速排序的方法
2015/04/04 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
thinkphp3.x中cookie方法的用法分析
2016/05/19 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
python抓取京东商城手机列表url实例代码
2013/12/18 Python
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
python numpy格式化打印的实例
2018/05/14 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
python中的数据结构比较
2019/05/13 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
Viking比利时:购买办公用品
2019/10/30 全球购物
函授本科毕业自我鉴定
2013/10/09 职场文书
生产厂厂长岗位职责
2013/12/25 职场文书
会计自荐信范文
2014/03/09 职场文书
综治宣传月活动总结
2014/04/28 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技