Python中的fnmatch模块,主要用于文件名的匹配

本文介绍了Python中的fnmatch模块,主要用于文件名的匹配。内容包括fnmatch()函数进行基本匹配,fnmatchcase()进行区分大小写的匹配,filter()函数用于遍历列表并匹配,以及translate()方法将匹配模式转换为正则表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.fnmatch():判断是否与指定的字符串匹配,格式:

fnmatch.fnmatch(file, '*.py'),file为字符串类型,其中*.py,可以简单的用类似正则来表示:

 

def run():
    for file in os.listdir('.'): #os.listdir返回指定的文件夹包含的文件或文件夹的名字的列表
        if fnmatch.fnmatch(file, '*.py'): #判断是否有后缀为.py的文件,*代表文件名长度格式不限制。
            print(file)

2.fnmatchcase():区分大小写来进行匹配,格式:

fnmatch.fnmatchcase(“Text.Py”, '*.py")

print(fnmatch.fnmatchcase("Text.py","text.*"))# False  
print(fnmatch.fnmatchcase("Text.Py","*.py"))# False  
print(fnmatch.fnmatchcase("Text.Py","*.Py"))# True

3.filter ():似类fnmatch的用法,不过,filter会去遍历列表中的每一个元素,格式:

fnmatch.filter(filelist,"?.py"),其中filelist是一个列表,遍历列表中的元素值来与?.py进行字符串的匹配。
filelist=["a.text","b.jpg","c.png","d.py",'e.text',"sss.py"]
print(fnmatch.filter(filelist,"?.py")) #匹配前面是一个字符的.py文件  输出:d.py

4.translate():转换成为正则匹配模式,格式:

 fnmatch.translate('[f,d,d,d,g,h].txt'),将要匹配的字符串转换成正则模式

regex = fnmatch.translate('[f,d,d,d,g,h].txt')#将[f,d,d,d,g,h].txt转为正则匹配的模式
print("regex",regex)#(?s:[f,d,d,d,g,h]\.txt)\Z#\Z:匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。
reobj = re.compile(regex)#生成re匹配模块
print(reobj.match ('f.txt'))#返回一个匹配对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值