fnmatch主要是用来判断一个文件名是否匹配”Unix shell-style wildcards”这种模式,就是平常用的那种 ls *.log 这样,看是否匹配。
用法很简单,常用也就这两个函数 fnmatch / filter :
In [36]: import fnmatch In [37]: import os #判断文件名是否匹配某个模式 In [38]: for file in os.listdir('/data0/log/trafficserver/'): ....: if fnmatch.fnmatch(file,'*.log'): ....: print file ....: squid.log diags.log custom.log manager.log error.log #过滤列表中匹配某个模式的文件名 In [39]: fnmatch.filter(os.listdir('/data0/log/trafficserver/'),'*.log') Out[39]: ['squid.log', 'diags.log', 'custom.log', 'manager.log', 'error.log'] #当然也可以这么做,不过官方说filter函数做的有优化 In [41]: [file for file in os.listdir('/data0/log/trafficserver/') if fnmatch.fnmatch(file,'*.log')] Out[41]: ['squid.log', 'diags.log', 'custom.log', 'manager.log', 'error.log'] 这个模块很简单,源码还不到100行,有需要直接看官方文档和源码就行了。 参考资料:fnmatch 官方文档: https://docs.python.org/2/library/fnmatch.html
← python xml.etree.ElementTree 学习小结