fnamtch就是filenamematch, 在python中利用符合linuxshell风格的匹配模块来进行文件名的匹配筛选工作。
我主要用到,或者其他地方看到的有两种方法:
1:fnmatch.fnmatch(name,pattern) 方法
测试时候文件名name时候匹配后面的pattern。是个布尔函数,返回True或者是False.
匹配模式可以用到‘*’,‘!’, ‘?’,‘[]’.
实例:
import os
import fnmatch
log_list=[]
for report inos.listdir( root_dir ):
if fnmatch.fnmatch( report, "*log*"):
print report
log_list.append(report )
2: fnamatch.filter(names, pattern)方法
names是一个列表,用pattern过滤出符合匹配条件的文件名,返回一个新的列表。
实例:
>>>names=['abc','def.txt','123.txt','/home/1.py']
>>> importfnmatch
>>>fnmatch.filter(names,'*txt')
['def.txt','123.txt']
>>>fnmatch.filter(names,'[de]')
[]
>>>fnmatch.filter(names,'*[de]*')
['def.txt','/home/1.py']