Python中的fnmatch - Unix文件名模式匹配2025 年 3 月 6 日 | 阅读 4 分钟 此模块使用类 Unix shell 的通配符匹配文件名。当单个文件名与模式匹配时,函数 fnmatch() 返回 TRUE;否则返回 FALSE。 当操作系统使用区分大小写的文件系统时,比较是区分大小写的。 Shell 风格的通配符使用以下特殊字符及其用途:
要进行字面匹配,元字符需要用方括号括起来。例如,字符 '?' 匹配 "[?]"。 fnmatch 模块提供的函数fnmatch.fnmatch(filename, pattern)此函数根据提供的文件名字符串是否匹配模式字符串返回布尔结果。在比较之前,如果操作系统不区分大小写,则参数将被规范化为全小写或全大写。 示例:脚本用于查找所有以“.py”结尾且以“fnmatch.”开头的文件。 程序说明 此 Python 应用程序 展示了如何使用 fnmatch.fnmatch() 根据给定模式过滤和匹配文件名。使用 'fnmatch_*.py' 模式来确定当前目录中的每个文件名是否与其匹配。然后,打印每个文件名及其是否匹配模式的布尔值。该程序有助于根据特定的命名模式过滤和操作文件。 输出 $ python fnmatch_fnmatch.py Pattern: fnmatch_*.py Filename: __init__.py False Filename: fnmatch_filter.py True Filename: fnmatch_fnmatch.py True Filename: fnmatch_fnmatchcase.py True Filename: fnmatch_translate.py True Filename: index.rst False fnmatch.fnmatchcase(filename, pattern)此方法在执行区分大小写的比较并确定提供的文件名字符串是否匹配模式字符串后返回布尔结果。 示例:无论文件系统和操作系统设置如何,用于区分大小写的比较的脚本。 程序说明 此 Python 程序演示了如何使用 fnmatch.fnmatchcase() 处理区分大小写的文件名模式。fnmatch 模块用于确定当前目录中的每个文件名是否与提供的区分大小写的模式 'FNMATCH_*.PY' 匹配。然后,打印每个文件名及其是否匹配模式的布尔值。对于匹配依赖于大写和小写字符之间差异的情况,fnmatch.fnmatchcase() 非常有用,因为它区分大小写。 输出 $ python fnmatch_fnmatchcase.py Pattern: FNMATCH_*.PY Filename: __init__.py False Filename: fnmatch_filter.py FalseFilename: FNMATCH_FNMATCH.PY True Filename: fnmatch_fnmatchcase.py False Filename: fnmatch_translate.py False Filename: index.rst False fnmatch.filter(names, pattern)此函数返回函数中提供的名称列表的子集,该子集与指定的模式匹配。 例如,可以使用多个文件扩展名来过滤文件。 程序说明 此 Python 应用程序展示了如何使用 fnmatch.filter() 和给定模式来过滤文件名列表。该应用程序使用 os.listdir('.') 从当前目录获取文件名列表,并构建一个名为 "fnmatch_*.py" 的模式。然后使用 filter 函数查找并打印与模式匹配的文件名子集。fnmatch.filter() 函数有效地减少了文件名列表中的数量,为提取匹配预定模式的文档提供了一种有用的策略。 输出 $ python fnmatch_filter.py Pattern: fnmatch_*.py Files : ['__init__.py', 'fnmatch_filter.py', 'fnmatch_fnmatch.py', 'fnmatch_fnmatchcase.py', 'fnmatch_translate.py', 'index.rst'] Matches : ['fnmatch_filter.py', 'fnmatch_fnmatch.py', 'fnmatch_fnmatchcase.py', 'fnmatch_translate.py'] fnmatch.translate(pattern)此方法将 shell 风格的模式转换为可与 re.match() 一起使用的正则表达式,re.match() 仅匹配字符串的开头,而不是每行的开头。 程序说明 此 Python 程序演示了如何使用 fnmatch.translate() 将 shell 风格的通配符模式 ('*.txt') 转换为正则表达式。然后,通过使用 re.compile() 方法编译正则表达式来创建 regex 对象。除了打印解释后的 regex 模式外,该程序还确定 regex 模式是否匹配字符串 "foobar.txt."。fnmatch.translate() 函数简化了将 shell 风格的通配符模式转换为 regex 模式的过程,使 Python 程序员能够更灵活地创建更复杂的匹配场景。 输出 '(?s:.*\\.txt)\\Z' _sre.SRE_Match object; span=(0, 10), match='foobar.txt' 下一主题函数包装器在 Python 中 |
卷积是一种重要的数学运算,它将两个函数混合以生成第三个函数,该函数表示它们之间的重叠量。它经常用于信号处理、图像处理和系统学习,尤其是在深度学习中。在信号处理的背景下,...
阅读 15 分钟
?简介 Python 是当今世界上最多才多艺的编程语言之一。它有许多用于不同目的的文件扩展名。其中,.pyc、.pyd 和 .pyo 尤其值得注意。这些文件扩展名包括 .py、.pyc、.pyo 和 .txt,每种...
阅读 6 分钟
三元图简介三元图是三角形图,用于表示三个组成部分之和恒定的数据,例如比例或百分比。三角形的每个顶点代表一个纯粹的组成部分,三角形内的点显示所有组成部分的相对贡献...
7 分钟阅读
在接下来的教程中,我们将通过一个例子来学习 Python 的 Mizuna 库。理解 Python 的 Mizuna 库 Mizuna 是一个不太知名的 Python 模块,它简化了创建和与机器学习模型进行交互的过程。它专注于优化通用...
5 分钟阅读
支持向量机 (SVM) 是强大且多功能的机器学习算法,用于分类和回归任务。它们广泛应用于各个领域,如图像分类、文本分类和生物信息学。在本文中,我们将深入探讨 SVM 的世界,探索其理论...
阅读 6 分钟
分布式处理简介 在当今的计算世界中,数据生成和处理已得到扩展。这种增长需要更强大的计算方法和基础设施。分布式处理是一种解决需要处理大型数据集和复杂算法的计算扩展性挑战的方法。这种方法...
阅读9分钟
?在 HTML 和 Python 之间进行选择取决于您的梦想以及您希望通过编程技能实现什么。HTML(超文本标记语言)HTML(超文本标记语言)用于创建和构建 Internet 上的内容。它定义了一个网站的元素,包括标题,...
阅读 3 分钟
简介 有时,我们需要存储大量数据并快速访问它。但是,管理许多文件可能会很麻烦。这时 HDF5 文件就派上用场了。它们允许我们将大量数据存储在高格式二进制中,确保...
阅读 4 分钟
数组是 Python 中的基本数据结构,它提供了一种方便的方式来存储和操作元素集合。规范化数组是一项常见操作,它涉及将数组内的值缩放到标准范围。此过程对于各种应用至关重要,例如...
阅读 4 分钟
? Python 是一种解释型语言,广泛用于编程,并以其可读性和简洁性而闻名。此分类基于用于运行 Python 代码的工具和方法。研究 Python 实现的内部工作原理、解释器的性质以及...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India