既然在Pathlib庫(kù)中提到了glob()函數(shù),那么我們就專門用一篇內(nèi)容講解文件名的匹配。其實(shí)我們有專門的一個(gè)文件名匹配庫(kù)就叫:glob。
不過(guò),glob庫(kù)的API非常小,但是僅僅應(yīng)用于文件名的匹配綽綽有余。只要是在實(shí)際的項(xiàng)目中需要過(guò)濾,或者匹配一組文件,都可以使用該庫(kù)進(jìn)行操作。
星號(hào)(*)
話不多說(shuō),下面我們使用通配符來(lái)匹配文件名,示例如下:
import glob for name in sorted(glob.glob('text/*')): print(name)
運(yùn)行之后,效果如下:
這里不僅用*通配符獲取了目錄下的所有文件,而且還對(duì)其進(jìn)行了排序。
問(wèn)號(hào)(?)是用來(lái)匹配單字的,比如我們賽選上面1開(kāi)頭的圖片文件。示例如下:
import glob for name in glob.glob('text/1?.png'): print(name)
運(yùn)行之后,效果如下:
從上面兩個(gè)匹配我們看出來(lái),glob庫(kù)的匹配規(guī)則與正則表達(dá)式有些相似。既然它能匹配模糊的,一個(gè)或多個(gè)字符,那么肯定也可以匹配區(qū)間字符。
示例如下:
import glob for name in glob.glob('text/15[a-z].*'): print(name)
運(yùn)行之后,效果如下:
當(dāng)然,上面的文件名都是常規(guī)的文件名,都是用字母與數(shù)字組成的。但是,有些人比較怪,可能在文件名中包含了特殊的字符,比如上面的匹配字符“?*[”等。那怎么辦呢?用反斜杠“\”轉(zhuǎn)義嗎?
其實(shí),我們還有更簡(jiǎn)單的,直接使用escape()函數(shù)進(jìn)行操作。示例如下:
import glob escape_str='?*[]' for char in escape_str: pattern = 'text/*' + glob.escape(char) + '.png' for name in glob.glob(pattern): print(name)
運(yùn)行之后,效果如下:
到此這篇關(guān)于Python文件名的匹配之clob庫(kù)的文章就介紹到這了,更多相關(guān)Python lob庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:惠州 益陽(yáng) 黑龍江 黔西 四川 鷹潭 上海 常德
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python文件名的匹配之clob庫(kù)》,本文關(guān)鍵詞 Python,文件名,的,匹配,之,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。