Python——模块——fnmatch(文件名对比)

Posted 澄心元素

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python——模块——fnmatch(文件名对比)相关的知识,希望对你有一定的参考价值。

一、模块作用

  fnmatch 模块主要用于文件名的比较,使用 Unix shell 使用的 glob 样式模式。

二、简单匹配

  fnmatch() 将单个文件名与模式进行比较并返回布尔值,来看它们是否匹配。当操作系统使用区分大小写的文件系统时,比较区分大小写。

  实例:模式匹配所有以 ‘fnmatch_‘ 开头和以 ‘.py‘ 结尾的文件

import fnmatch
import os
#需要匹配的文件名及后缀
patten = fnmatch_*.py
#文件所在的目录
files = os.listdir(.)
#循环匹配
for name in sorted(files):
    print(Filename: {:<25} {}.format(name, fnmatch.fnmatch(name, patten)))

**要强制进行区分大小写的比较,无论文件系统和操作系统设置如何,请使用 fnmatchcase()

三、过滤

  要测试文件名序列,使用 filter(),它返回与 pattern 参数匹配的名称列表。

import fnmatch
import os
#需要匹配的文件名及后缀
patten = fnmatch_*.py
#排序
files = list(sorted(os.listdir(.)))
fnmatch.filter(files,patten)

四、翻译模式

  在内部,fnmatch 将 glob 模式转换为正则表达式,并使用 re 模块比较名称和模式。translate() 函数是将 glob 模式转换为正则表达式的公共 API。

以上是关于Python——模块——fnmatch(文件名对比)的主要内容,如果未能解决你的问题,请参考以下文章

python的os模块fnmatch模块介绍

Python 2.7 fnmatch 不编辑文本

Python3标准库:fnmatch UNIX式glob模式匹配

python--fnmatch

Python: 用shell通配符匹配字符串,fnmatch/fnmatchcase

在 python 中将普通文件名与 fnmatch 模式分开