用shell通配符模式匹配字符串的方法 fnmatch, fnmatchcase

通常情况下如果要进行比较复杂的匹配,可以考虑用正则表达式模块:re模块,这里介绍fnmatch模块:

#!/usr/bin/env python
#coding:utf-8
#@Author:Andy

from fnmatch import fnmatch ,fnmatchcase
res1= fnmatch("foot.txt", '*.txt')
print(res1) # True,
res2 = fnmatch("foo.txt", "?oo.txt")
print(res2) # True

# sometimes you need to filter some kind of str
file_name = ['Dat1.csv', 'Dat2.csv', 'config.ini', 'foo.py']
res3 = [name for name in file_name if fnmatch(name, "*.csv")]
print(res3) # ["dat1.csv", "Dat2.csv"]
# The fnmatch use the same case sensitivity
# on linux  case sensitive , but not on windows
# if you want to set the sensitivity you'd better use fnmatchcase

res4 = fnmatchcase('test.txt', '*.TXT')
print(res4) # False
原文地址:https://www.cnblogs.com/Andy963/p/6961012.html