新聞中心
今天就跟大家聊聊有關(guān)如何使用fnmatch模塊,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)臨澤,10年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
fnmatch模塊的使用
此模塊的主要作用是文件名稱的匹配,并且匹配的模式使用的unix shell風格。
fnmatch比較簡單就4個方法分別是:fnmatch,fnmatchcase,filter,translate

1.fnmatch
fnmatch.fnmatch(filename, pattern)
測試filename,是否符合pattern。
import fnmatch
import os
def run():
for file in os.listdir('.'): #os.listdir返回指定的文件夾包含的文件或文件夾的名字的列表
if fnmatch.fnmatch(file, '*.py'): #判斷是否有后綴為.py的文件,*代表文件名長度格式不限制。
print(file)
if __name__ == '__main__':
run()
2.fnmatchcase
fnmatch.fnmatchcase(filename, pattern)
和fnmatch()類似,只是fnmatchcase 強制區(qū)分大小寫匹配,不管文件系統(tǒng)是否區(qū)分。
print(fnmatch.fnmatchcase("text.py","text.*")) #True
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(names, pattern)
實現(xiàn)列表特殊字符的過濾或篩選,返回符合匹配模式的字符列表,它的作用類似
[n for n in names if fnmatch(n, pattern)]
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(pattern):
翻譯模式, fnmatch將這種全局模式轉(zhuǎn)換成一個正則式, 然后使用re模塊來比較名字和模式。 translate() 函數(shù)是一個公共API用于將全局模式轉(zhuǎn)換成正則式
regex = fnmatch.translate('[f,d,d,d,g,h].txt')#將[f,d,d,d,g,h].txt轉(zhuǎn)為正則匹配的模式
print("regex",regex)#(?s:[f,d,d,d,g,h]\.txt)\Z
#\Z:匹配字符串結(jié)束,如果是存在換行,只匹配到換行前的結(jié)束字符串。
reobj = re.compile(regex)#生成re匹配模塊
print(reobj.match ('f.txt'))#返回一個匹配對象
#<_sre.SRE_Match object; span=(0, 5), match='f.txt'>
看完上述內(nèi)容,你們對如何使用fnmatch模塊有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
分享題目:如何使用fnmatch模塊
URL網(wǎng)址:http://www.ef60e0e.cn/article/ppggec.html