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 相关文章推荐
使用setup.py安装python包和卸载python包的方法
Nov 27 Python
Python基础教程之正则表达式基本语法以及re模块
Mar 25 Python
Sanic框架路由用法实例分析
Jul 16 Python
selenium+python设置爬虫代理IP的方法
Nov 29 Python
python3射线法判断点是否在多边形内
Jun 28 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
python如何实现不可变字典inmutabledict
Jan 08 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 Python
python 使用递归实现打印一个数字的每一位示例
Feb 27 Python
使用pytorch实现线性回归
Apr 11 Python
python的变量和简单数字类型详解
Sep 15 Python
Elasticsearch 聚合查询和排序
Apr 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/03/02 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
Js四则运算函数代码
2012/07/21 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
微信小程序之蓝牙的链接
2017/09/26 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
Python机器学习之决策树算法
2017/12/22 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
python表格存取的方法
2018/03/07 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
Pytorch之保存读取模型实例
2019/12/30 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
python 装饰器的使用示例
2020/10/10 Python
Spy++的使用方法及下载教程
2021/01/29 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
家长写给老师的建议书
2014/03/13 职场文书
网站美工岗位职责
2014/04/02 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
spring cloud 配置中心native配置方式
2021/09/25 Java/Android