python fnmatch模块

Doc: https://docs.python.org/2/library/fnmatch.html#module-fnmatch

fnmatch用来判断文件名模块是否匹配”Unix shell-style wildcards”, 可用通配符*?[seq][!seq]

实际所谓文件名,就是一个字符串, 这跟re模块的功能差不多,区别在于通配符表达式和正则表达式的不一样。

所以fnmatch模块有个translate()函数,就是把通配符表达式翻译成正则表大家式,比如*就变成.*

函数:

fnmatch.fnmatch(filename, pattern), 返回True/False

fnmatch.fnmatchcase(filename, pattern), 返回True/False, 针对windows这样的对文件名大小写不区分的系统,做强制大小写检查,比如fnmatch.fnmatchcase(‘abc.txt, ‘*.TXT’), 返回False。 在linux下与fnmatch.fnmatch()没有区别。

fnmatch.filter(filenames, pattern) , 返回一个list, 这个list是匹配pattern的filenames list 里的文件组成, 没有一个匹配就返回空list []

fnmatch.translate(pattern), 把Unix shell-style wildcards pattern 转成正则表达式

程序:

结果: