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中处理字符串之endswith()方法的使用简介
May 18 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
Oct 21 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
Jun 27 Python
如何将 awk 脚本移植到 Python
Dec 09 Python
Django 设置多环境配置文件载入问题
Feb 25 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
python如何利用paramiko执行服务器命令
Nov 07 Python
如何编写python的daemon程序
Jan 07 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
Feb 24 Python
python 三边测量定位的实现代码
Apr 22 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 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
微信支付扫码支付php版
2016/07/22 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
windows上安装Anaconda和python的教程详解
2017/03/28 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
python获取服务器响应cookie的实例
2018/12/28 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
python的scipy.stats模块中正态分布常用函数总结
2021/02/19 Python
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
2019年.net常见面试问题
2012/02/12 面试题
专业技术职务聘任书
2014/03/29 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
大学生活感想
2015/08/10 职场文书
少先队中队工作总结
2015/08/14 职场文书