fnmatch
---Unix文件名模式匹配¶
源代码: Lib/fnmatch.py
此模块支持unix shell样式的通配符,这些通配符是 not 与正则表达式相同(记录在 re
模块)。shell样式通配符中使用的特殊字符是:
模式 |
意义 |
---|---|
|
匹配所有内容 |
|
匹配任何单个字符 |
|
匹配中的任何字符 seq |
|
匹配不在中的任何字符 seq |
对于文本匹配,请将元字符括在括号中。例如, '[?]'
与角色匹配 '?'
.
注意,文件名分隔符 ('/'
在UNIX上 not 此模块专用。参阅模块 glob
用于路径名扩展 (glob
使用 filter()
匹配路径名段)。类似地,以句点开头的文件名对于此模块不是特殊的,并且与 *
和 ?
模式。
- fnmatch.fnmatch(filename, pattern)¶
测试 filename 字符串与 模式 字符串,返回
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 比赛 模式 归来
True
或False
;比较区分大小写,不适用os.path.normcase()
.
- fnmatch.filter(names, pattern)¶
从可迭代元素的这些元素构造一个列表 姓名 那场比赛 图案 。它与以下内容相同
[n for n in names if fnmatch(n, pattern)]
,但实施效率更高。
- fnmatch.translate(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样式的路径扩展。