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中的函数用法入门教程
Sep 02 Python
Python heapq使用详解及实例代码
Jan 25 Python
python中装饰器级连的使用方法示例
Sep 29 Python
python处理DICOM并计算三维模型体积
Feb 26 Python
python使用selenium实现批量文件下载
Mar 11 Python
Python绘制频率分布直方图的示例
Jul 08 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
python中@property和property函数常见使用方法示例
Oct 21 Python
python从zip中删除指定后缀文件(推荐)
Dec 05 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
pycharm实现print输出保存到txt文件
Jun 01 Python
Python+Xlwings 删除Excel的行和列
Dec 19 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/12/17 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
javascript每日必学之继承
2016/02/23 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
python通过函数属性实现全局变量的方法
2015/05/16 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
python如何实现视频转代码视频
2019/06/17 Python
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
标准自荐信范文
2014/01/29 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
解约证明模板
2015/06/19 职场文书
初中历史教学反思
2016/02/19 职场文书
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL