Python通過(guò)fnmatch模塊實(shí)現(xiàn)文件名匹配
fnmatch 模塊主要用于文件名稱的匹配,其能力比簡(jiǎn)單的字符串匹配更強(qiáng)大,但比使用正則表達(dá)式相比稍弱。。如果在數(shù)據(jù)處理操作中,只需要使用簡(jiǎn)單的通配符就能完成文件名的匹配,則使用 fnmatch 模塊是不錯(cuò)的選擇。
fnmatch 模塊中,常用的函數(shù)及其功能如表 1 所示。
Python fnmatch模塊常用函數(shù)及功能
函數(shù)名 | 功能 |
fnmatch.filter(names, pattern) | 對(duì) names 列表進(jìn)行過(guò)濾,返回 names 列表中匹配 pattern 的文件名組成的子集合。 |
fnmatch.fnmatch(filename, pattern) | 判斷 filename 文件名,是否和指定 pattern 字符串匹配 |
fnmatch.fnmatchcase(filename, pattern) | 和 fnmatch() 函數(shù)功能大致相同,只是該函數(shù)區(qū)分大小寫。 |
fnmatch.translate(pattern) | 將一個(gè) UNIX shell 風(fēng)格的 pattern 字符串,轉(zhuǎn)換為正則表達(dá)式 |
fnmatch 模塊匹配文件名的模式使用的就是 UNIX shell 風(fēng)格,其支持使用如下幾個(gè)通配符:
- *:可匹配任意個(gè)任意字符。
- ?:可匹配一個(gè)任意字符。
- [字符序列]:可匹配中括號(hào)里字符序列中的任意字符。該字符序列也支持中畫線表示法。比如 [a-c] 可代表 a、b 和 c 字符中任意一個(gè)。
- [!字符序列]:可匹配不在中括號(hào)里字符序列中的任意字符。
例如,下面程序演示表 1 中一些函數(shù)的用法及功能:
import fnmatch #filter() print(fnmatch.filter(['dlsf', 'ewro.txt', 'te.py', 'youe.py'], '*.txt')) #fnmatch() for file in ['word.doc','index.py','my_file.txt']: if fnmatch.fnmatch(file,'*.txt'): print(file) #fnmatchcase() print([addr for addr in ['word.doc','index.py','my_file.txt','a.TXT'] if fnmatch.fnmatchcase(addr, '*.txt')]) #translate() print(fnmatch.translate('a*b.txt'))
程序執(zhí)行結(jié)果為:
['ewro.txt']
my_file.txt
['my_file.txt']
(?s:a.*b\.txt)\Z
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
pycharm2021激活碼使用教程(永久激活親測(cè)可用)
pycharm2021激活碼是一個(gè)可以輕松幫助用戶免費(fèi)激活pycharm2021.1軟件的文件,雖然說(shuō)pycharm現(xiàn)在只是推出了2021.1的EAP版,但是如果你想先率先體驗(yàn)一波,那么就可以利用小編提供的這個(gè)激活碼來(lái)進(jìn)行使用啦,并這個(gè)激活碼是永久有效的2021-03-03跟老齊學(xué)Python之再深點(diǎn),更懂list
對(duì)于list,由于她的確非常非常龐雜,在python中應(yīng)用非常廣泛,所以,雖然已經(jīng)介紹完畢了基礎(chǔ)內(nèi)容,這里還要用一講深入一點(diǎn)點(diǎn),往往越深入越...2014-09-09Python數(shù)據(jù)分析numpy數(shù)組的3種創(chuàng)建方式
這篇文章主要介紹了Python數(shù)據(jù)分析numpy數(shù)組的3種創(chuàng)建方式,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07python實(shí)現(xiàn)向微信用戶發(fā)送每日一句 python實(shí)現(xiàn)微信聊天機(jī)器人
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)向微信用戶發(fā)送每日一句,python調(diào)實(shí)現(xiàn)微信聊天機(jī)器人,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03Python Locals變量管理新嘗試引領(lǐng)代碼風(fēng)潮
在Python中,locals()函數(shù)是一個(gè)強(qiáng)大的工具,它使程序員能夠訪問(wèn)和操作當(dāng)前作用域內(nèi)的局部變量,本文將深入探討locals()函數(shù)的功能、應(yīng)用和重要性2024-01-01Python使用當(dāng)前時(shí)間、隨機(jī)數(shù)產(chǎn)生一個(gè)唯一數(shù)字的方法
這篇文章主要介紹了Python使用當(dāng)前時(shí)間、隨機(jī)數(shù)產(chǎn)生一個(gè)唯一數(shù)字的方法,涉及Python時(shí)間與隨機(jī)數(shù)相關(guān)操作技巧,需要的朋友可以參考下2017-09-09手把手教你使用Python解決簡(jiǎn)單的zip文件解壓密碼
本文主要介紹了Python解決簡(jiǎn)單的zip文件解壓密碼,使用的核心模塊是python標(biāo)準(zhǔn)庫(kù)中的zipfile模塊。具有一定的參考價(jià)值,感興趣的可以了解一下2021-11-11利用python實(shí)現(xiàn)終身免費(fèi)的聽書工具
本文通過(guò)實(shí)際案例,詳細(xì)介紹了作者如何利用Python庫(kù)實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音的過(guò)程,從安裝庫(kù)到實(shí)際操作案例,都有詳細(xì)的說(shuō)明,為讀者提供了一定的參考價(jià)值2024-03-03