python fnmatch文件名字匹配模块
2020-08-31 本文已影响0人
喵呜e喵星人
作用:
主要作用是文件名称的匹配
字符 含义
* 匹配多个字符
? 匹配单个字符
[seq] 匹配指定范围内字符
[!seq] 匹配不在指定范围内的字符
匹配结果为布尔型数据,True or False
eg:
1.fnmatch
查找本目录下所有py文件:
import fnmatch,os
for filename in os.listdir(os.curdir):
if fnmatch.fnmatch(filename,"*.py"):
print(filename)
if fnmatch.fnmatch('hello', '?ello'): # 匹配模式为问号,及匹配一个任意字符
print("hello")
if fnmatch.fnmatch('hello', 'h[a-z]llo'): # 匹配模式为单个字符,在a-z之间
print("hello")
if fnmatch.fnmatch('1hello', '[!a-z]hello'): # 匹配模式为不能是a-z之间的字符
print("hello")
2.fnmatchcase
fnmatch.fnmatchcase(filename, pattern)
和fnmatch()类似,只是fnmatchcase 强制区分大小写匹配,不管文件系统是否区分。
3.filter
fnmatch.filter(names, pattern)
实现列表特殊字符的过滤或筛选,返回符合匹配模式的字符列表,它的作用类似
[n for n in names if fnmatch(n, pattern)]
4.translate
fnmatch.translate(pattern):
翻译模式, fnmatch将这种全局模式转换成一个正则式, 然后使用re模块来比较名字和模式。 translate() 函数是一个公共API用于将全局模式转换成正则式