fnmatch模块
提示:匹配规则和glob相同
1、fnmatch.fnmatch(filename, pattern)
- 判断filename,匹配pattern,返回True/Flase
2、fnmatch.filter(names, pattern)
- 对names列表进行pattern过滤,返回新列表
3、fnmatch.fnmatchcase(filename, pattern)
- 区分大小写,判断filename,匹配pattern,返回True/Flase
4、translate(pattern)
项目 | Value |
---|---|
fnmatch.fnmatch(filename, pattern) | 判断 filename 文件名,是否和指定 pattern 字符串匹配,返回bool |
fnmatch.fnmatchcase(filename, pattern) | 和 fnmatch() 函数功能大致相同,只是该函数区分大小写 |
fnmatch.filter(names, pattern) | 似类fnmatch的用法,不过,filter会去遍历列表中的每一个元素,返回一个列表 |
import fnmatch
print(fnmatch.fnmatch('dlsf.TXT', '*.TXT'))
print("-" * 40)
print(fnmatch.filter(['dlsf', 'ewro.txt', 'te.txt', 'youe.py'], '*.txt'))
print("-" * 40)
list1 = ['dlsf', 'ewro.txt', 'te.txt', 'youe.py']
for i in list1:
if fnmatch.fnmatch(i,"*.txt"):
print(i)
regex = fnmatch.translate('[f,d,d,d,g,h].txt') # 将[f,d,d,d,g,h].txt转为正则匹配的模式
print("regex", regex) # (?s:[f,d,d,d,g,h]\.txt)\Z#\Z:匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。
reobj = re.compile(regex) # 生成re匹配模块
print(reobj.match('f.txt').group()) # 返回一个匹配对象
True
----------------------------------------
[‘ewro.txt’, ‘te.txt’]
----------------------------------------
ewro.txt
te.txt
regex (?s:[f,d,d,d,g,h].txt)\Z
f.txt