Python
- 4. 其他流程控制工具
- 4.1. if语句
- 4.2. for语句
- 4.3. range()函数
- 4.4. 循环中的break、continue语句及else子句
- 4.5. pass语句
- 4.6. 定义函数
- 4.7. 函数定义详解
- 4.7.1. 默认值参数
- 4.7.2. 关键字参数
- 4.7.3. 特殊参数
- 4.7.3.1. 位置或关键字参数
- 4.7.3.2. 仅位置参数
- 4.7.3.3. 仅限关键字参数
- 4.7.3.4. 函数示例
- 4.7.3.5. 小结
- 4.7.4. 任意实参列表
- 4.7.5. 解包实参列表
- 4.7.6. Lambda 表达式
- 4.7.7. 文档字符串
- 4.7.8. 函数注解
- 4.8. 小插曲:编码风格
library/fnmatch
fnmatch
--- Unix 文件名模式匹配¶
源代码: Lib/fnmatch.py
此模块提供了 Unix shell 风格的通配符,它们 并不 等同于正则表达式(关于后者的文档参见 re
模块)。 shell 风格通配符所使用的特殊字符如下:
模式 |
意义 |
---|---|
|
匹配所有 |
|
匹配任何单个字符 |
|
匹配 seq 中的任何字符 |
|
匹配任何不在 seq 中的字符 |
对于字面值匹配,请将原字符用方括号括起来。 例如,'[?]'
将匹配字符 '?'
。
注意文件名分隔符 (Unix 上为 '/'
) 不是 此模块所特有的。 请参见 glob
模块了解文件名扩展 (glob
使用 filter()
来匹配文件名的各个部分)。 类似地,以一个句点打头的文件名也不是此模块所特有的,可以通过 *
和 ?
模式来匹配。
-
fnmatch.
fnmatch
(filename, pattern)¶ 检测 filename 字符串是否匹配 pattern 字符串,返回
True
或False
。 两个形参都会使用os.path.normcase()
进行大小写正规化。fnmatchcase()
可被用于执行大小写敏感的比较,无论这是否为所在操作系统的标准。这个例子将打印当前目录下带有扩展名
.txt
的所有文件名:import fnmatch import os for file in os.listdir('.'): if fnmatch.fnmatch(file, '*.txt'): print(file)
-
fnmatch.
fnmatchcase
(filename, pattern)¶ 检测 filename 是否匹配 pattern,返回
True
或False
;此比较是大小写敏感的,并且不会应用os.path.normcase()
。
-
fnmatch.
filter
(names, pattern)¶ 基于可迭代对象 names 中匹配 pattern 的元素构造一个列表。 它等价于
[n for n in names if fnmatch(n, pattern)]
,但实现得更有效率。
-
fnmatch.
translate
(pattern)¶ 返回 shell 风格 pattern 转换成的正则表达式以便用于
re.match()
。示例:
>>> import fnmatch, re >>> >>> regex = fnmatch.translate('*.txt') >>> regex '(?s:.*\\.txt)\\Z' >>> reobj = re.compile(regex) >>> reobj.match('foobar.txt') <re.Match object; span=(0, 10), match='foobar.txt'>
参见
- 模块
glob
Unix shell 风格路径扩展。
此页内容是否对您有帮助
感谢反馈!