Python中fnmatch模块实现文件名匹配

 更新时间:2025年04月29日 10:34:16   作者:彬彬侠  
fnmatch模块用于文件名匹配,支持 Unix shell风格的通配符,本文主要介绍了Python中fnmatch模块实现文件名匹配,具有一定的参考价值,感兴趣的可以了解一下

fnmatch 模块用于 文件名匹配,支持 Unix shell 风格的通配符(类似 glob),但不匹配路径,只匹配文件名。

与 glob 不同的是:

  • glob 是 在文件系统中搜索匹配的文件。
  • fnmatch 只用于 匹配字符串模式,通常结合 os.listdir() 使用。

1. fnmatch.fnmatch()

匹配 文件名 是否符合某个通配模式(不区分大小写)。

import fnmatch

# 直接匹配文件名
print(fnmatch.fnmatch("data.txt", "*.txt"))  # True
print(fnmatch.fnmatch("data.csv", "*.txt"))  # False

2. fnmatch.fnmatchcase()

严格区分大小写的匹配。

import fnmatch

print(fnmatch.fnmatchcase("DATA.TXT", "*.txt"))  # False (大小写不同)
print(fnmatch.fnmatchcase("data.TXT", "*.TXT"))  # True

3. fnmatch.filter()

过滤列表,返回符合模式的文件名列表。

import fnmatch

files = ["data.txt", "report.doc", "image.png", "notes.TXT"]

# 过滤出所有 .txt 文件
txt_files = fnmatch.filter(files, "*.txt")
print(txt_files)  # ['data.txt']

4. fnmatch.translate()

将通配符模式转换为正则表达式(regex)。

import fnmatch

pattern = fnmatch.translate("*.txt")
print(pattern)

输出:

(?s:.*\.txt)\Z

可以用于 re.match() 进行更复杂的匹配。

5. 结合 os.listdir() 筛选文件

import os
import fnmatch

# 获取当前目录下的所有 .txt 文件
files = os.listdir(".")
txt_files = fnmatch.filter(files, "*.txt")

print(txt_files)

6. fnmatch vs glob

功能fnmatchglob
主要用途字符串匹配文件查找
是否查找文件❌ 仅匹配名称✅ 扫描目录获取匹配文件
常用方法fnmatch(), filter()glob.glob(), rglob()

7. 总结

  • fnmatch.fnmatch():匹配字符串(文件名)。
  • fnmatch.fnmatchcase():大小写敏感的匹配。
  • fnmatch.filter():从列表中过滤符合模式的文件。
  • fnmatch.translate():将通配符转换为正则表达式。

适用于 字符串匹配,如 文件筛选、日志分析、路径匹配 等。如果需要查找磁盘上的文件,建议使用 glob 或 os.listdir() 结合 fnmatch.filter()

到此这篇关于Python中fnmatch模块实现文件名匹配的文章就介绍到这了,更多相关Python fnmatch模块 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django csrf 两种方法设置form的实例

    Django csrf 两种方法设置form的实例

    今天小编就为大家分享一篇Django csrf 两种方法设置form的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • 基于Pytorch实现逻辑回归

    基于Pytorch实现逻辑回归

    这篇文章主要为大家详细介绍了基于Pytorch实现逻辑回归,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • pytorch中关于backward的几个要点说明

    pytorch中关于backward的几个要点说明

    这篇文章主要介绍了pytorch中关于backward的几个要点说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python获取浏览器窗口句柄过程解析

    Python获取浏览器窗口句柄过程解析

    这篇文章主要介绍了Python获取浏览器窗口句柄过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Python 作为小程序后端的三种实现方法(推荐)

    Python 作为小程序后端的三种实现方法(推荐)

    这篇文章主要介绍了Python 作为小程序后端的三种方法,在这比较推荐前两种方法,本文通过实例图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • keras中的loss、optimizer、metrics用法

    keras中的loss、optimizer、metrics用法

    这篇文章主要介绍了keras中的loss、optimizer、metrics用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 基于Python实现合并多张图片转成mp4视频

    基于Python实现合并多张图片转成mp4视频

    随着现代科技飞速发展和人们提升视觉上体验,利用图片生成视频的方法,确实为工作或者提升生活体验感做了很多成功案例,本文就来介绍一下具体实现方法吧
    2023-04-04
  • Tensorflow模型实现预测或识别单张图片

    Tensorflow模型实现预测或识别单张图片

    这篇文章主要为大家详细介绍了Tensorflow模型实现预测或识别单张图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • python基础之模块的导入

    python基础之模块的导入

    这篇文章主要介绍了python模块的导入,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下
    2021-10-10
  • Python实现提取PDF简历信息并存入Excel

    Python实现提取PDF简历信息并存入Excel

    作为人力资源部的小伙伴,常常需要把他人投递的PDF简历资料里的关键信息数据,提取到excel表中汇总,这个时候用Python实现最合适, 快来学习一下如何实现吧
    2022-04-04

最新评论