Python通过fnmatch模块实现文件名匹配

 更新时间:2020年09月30日 16:13:04   作者:lincappu  
这篇文章主要介绍了Python通过fnmatch模块实现文件名匹配,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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中类变量和实例变量的区别

    这篇文章主要介绍了Python中类变量和实例变量的区别,文章针对Python类变量和实例变量的问题,给出了具体说明和演示,需要的小伙伴可以参考一下
    2022-02-02
  • Python判断一个文件夹内哪些文件是图片的实例

    Python判断一个文件夹内哪些文件是图片的实例

    今天小编就为大家分享一篇Python判断一个文件夹内哪些文件是图片的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Keras神经网络efficientnet模型搭建yolov3目标检测平台

    Keras神经网络efficientnet模型搭建yolov3目标检测平台

    这篇文章主要为大家介绍了Keras利用efficientnet系列模型搭建yolov3目标检测平台的过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • PyQt转换路径中的斜杠(斜杠(/)与反斜杠(\)转换)

    PyQt转换路径中的斜杠(斜杠(/)与反斜杠(\)转换)

    本文主要介绍了PyQt转换路径中的斜杠(斜杠(/)与反斜杠(\)转换),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • PyTorch: 梯度下降及反向传播的实例详解

    PyTorch: 梯度下降及反向传播的实例详解

    今天小编就为大家分享一篇PyTorch: 梯度下降及反向传播的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python自动化办公实现数据自动填充需求

    Python自动化办公实现数据自动填充需求

    这篇文章主要为大家介绍了Python自动化办公实现数据自动填充需求,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Java中的各种单例模式优缺点解析

    Java中的各种单例模式优缺点解析

    这篇文章主要介绍了Java中的各种单例模式解析,单例模式是Java中最简单的设计模式之一,这种类型的设计模式属于创建者模式,它提供了一种访问对象的最佳方式,需要的朋友可以参考下
    2023-07-07
  • Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式

    Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式

    今天小编就为大家分享一篇Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 利用Python将社交网络进行可视化

    利用Python将社交网络进行可视化

    这篇文章介绍了利用Python将社交网络进行可视化,主要是一些Python的第三方库来进行社交网络的可视化,利用领英(Linkedin)的社交关系数据展开介绍,内容可当学习练习题有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • python中DataFrame常用的描述性统计分析方法详解

    python中DataFrame常用的描述性统计分析方法详解

    这篇文章主要介绍了python中DataFrame常用的描述性统计分析方法详解,描述性统计分析是通过图表或数学方法,对数据资料进行整理、分析,并对数据的分布状态、数字特征和随机变量之间的关系进行估计和描述的方法,需要的朋友可以参考下
    2023-07-07

最新评论