Python中g(shù)lob庫實(shí)現(xiàn)文件名的匹配
前言
既然在Pathlib庫中提到了glob()函數(shù),那么我們就專門用一篇內(nèi)容講解文件名的匹配。其實(shí)我們有專門的一個(gè)文件名匹配庫就叫:glob。
不過,glob庫的API非常小,但是僅僅應(yīng)用于文件名的匹配綽綽有余。只要是在實(shí)際的項(xiàng)目中需要過濾,或者匹配一組文件,都可以使用該庫進(jìn)行操作。
通配符
星號(hào)(*)
話不多說,下面我們使用通配符來匹配文件名,示例如下:
import glob for name in sorted(glob.glob('text/*')): print(name)
運(yùn)行之后,效果如下:
這里不僅用*通配符獲取了目錄下的所有文件,而且還對(duì)其進(jìn)行了排序。
問號(hào)(?)
問號(hào)(?)是用來匹配單字的,比如我們賽選上面1開頭的圖片文件。示例如下:
import glob for name in glob.glob('text/1?.png'): print(name)
運(yùn)行之后,效果如下:
區(qū)間匹配([0-9][a-z][A-Z])
從上面兩個(gè)匹配我們看出來,glob庫的匹配規(guī)則與正則表達(dá)式有些相似。既然它能匹配模糊的,一個(gè)或多個(gè)字符,那么肯定也可以匹配區(qū)間字符。
示例如下:
import glob for name in glob.glob('text/15[a-z].*'): print(name)
運(yùn)行之后,效果如下:
轉(zhuǎn)義元字符
當(dāng)然,上面的文件名都是常規(guī)的文件名,都是用字母與數(shù)字組成的。但是,有些人比較怪,可能在文件名中包含了特殊的字符,比如上面的匹配字符“?*[”等。那怎么辦呢?用反斜杠“\”轉(zhuǎn)義嗎?
其實(shí),我們還有更簡單的,直接使用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中g(shù)lob庫實(shí)現(xiàn)文件名的匹配的文章就介紹到這了,更多相關(guān)Python 文件名的匹配內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python寫的創(chuàng)建文件夾自定義函數(shù)mkdir()
這篇文章主要介紹了Python寫的創(chuàng)建文件夾自定義函數(shù)mkdir(),文件夾操作是編程中經(jīng)常需要的,mkdir函數(shù)更是經(jīng)典中的經(jīng)典,需要的朋友可以參考下2014-08-08TensorFlow設(shè)置日志級(jí)別的幾種方式小結(jié)
今天小編就為大家分享一篇TensorFlow設(shè)置日志級(jí)別的幾種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python實(shí)現(xiàn)自動(dòng)玩連連看的腳本分享
最近女朋友在玩連連看,玩了一個(gè)星期了還沒通關(guān),真的是菜。實(shí)在是看不過去了,直接用python寫了個(gè)腳本代碼可以自動(dòng)玩連連看,感興趣的可以了解一下2022-04-04python實(shí)現(xiàn)的簡單FTP上傳下載文件實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)的簡單FTP上傳下載文件的方法,實(shí)例分析了Python基于FTP模塊實(shí)現(xiàn)文件傳輸?shù)募记?需要的朋友可以參考下2015-06-06Flask模板渲染與Get和Post請(qǐng)求詳細(xì)介紹
這篇文章主要介紹了Flask模板渲染與Get和Post請(qǐng)求,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09Python中函數(shù)帶括號(hào)和不帶括號(hào)的區(qū)別及說明
這篇文章主要介紹了Python中函數(shù)帶括號(hào)和不帶括號(hào)的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11Python實(shí)現(xiàn)PC屏幕截圖并自動(dòng)發(fā)送郵件
在當(dāng)前的數(shù)字化世界中,自動(dòng)化已經(jīng)成為我們?nèi)粘I詈凸ぷ髦械年P(guān)鍵部分,本文我們將探討如何使用Python來實(shí)現(xiàn)一個(gè)特定的自動(dòng)化任務(wù) - PC屏幕截圖自動(dòng)發(fā)送到指定的郵箱,感興趣的可以了解下2023-11-11