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中解析XML数据的方法
Oct 15 Python
django限制匿名用户访问及重定向的方法实例
Feb 07 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
python向字符串中添加元素的实例方法
Jun 28 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 Python
python tkinter canvas使用实例
Nov 04 Python
python的json包位置及用法总结
Jun 21 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
Jul 14 Python
python time.strptime格式化实例详解
Feb 03 Python
Python OpenCV 图像平移的实现示例
Jun 04 Python
Python基本知识点总结
Apr 07 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地址引用(php地址引用的效率问题)
2012/03/23 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
javascript 二分法(数组array)
2010/04/24 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
基于JQuery实现图片轮播效果(焦点图)
2016/02/02 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
JS实现深度优先搜索求解两点间最短路径
2019/01/17 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
2018/04/22 Python
对python函数签名的方法详解
2019/01/22 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
tornado+celery的简单使用详解
2019/12/21 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
介绍一下OSI七层模型
2012/07/03 面试题
个人找工作自荐信格式
2013/09/21 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
给学校的建议书范文
2014/05/15 职场文书
领导干部对照检查材料
2014/08/24 职场文书
刑事代理授权委托书
2014/09/17 职场文书
工程安全生产协议书
2014/11/21 职场文书
SQL写法--行行比较
2021/08/23 SQL Server
微信小程序实现轮播图指示器
2022/06/25 Javascript
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技