Python中fnmatch模塊實(shí)現(xiàn)文件名匹配
fnmatch
模塊用于 文件名匹配,支持 Unix shell 風(fēng)格的通配符(類(lèi)似 glob
),但不匹配路徑,只匹配文件名。
與 glob
不同的是:
glob
是 在文件系統(tǒng)中搜索匹配的文件。fnmatch
只用于 匹配字符串模式,通常結(jié)合os.listdir()
使用。
1. fnmatch.fnmatch()
匹配 文件名 是否符合某個(gè)通配模式(不區(qū)分大小寫(xiě))。
import fnmatch # 直接匹配文件名 print(fnmatch.fnmatch("data.txt", "*.txt")) # True print(fnmatch.fnmatch("data.csv", "*.txt")) # False
2. fnmatch.fnmatchcase()
嚴(yán)格區(qū)分大小寫(xiě)的匹配。
import fnmatch print(fnmatch.fnmatchcase("DATA.TXT", "*.txt")) # False (大小寫(xiě)不同) print(fnmatch.fnmatchcase("data.TXT", "*.TXT")) # True
3. fnmatch.filter()
過(guò)濾列表,返回符合模式的文件名列表。
import fnmatch files = ["data.txt", "report.doc", "image.png", "notes.TXT"] # 過(guò)濾出所有 .txt 文件 txt_files = fnmatch.filter(files, "*.txt") print(txt_files) # ['data.txt']
4. fnmatch.translate()
將通配符模式轉(zhuǎn)換為正則表達(dá)式(regex)。
import fnmatch pattern = fnmatch.translate("*.txt") print(pattern)
輸出:
(?s:.*\.txt)\Z
可以用于 re.match()
進(jìn)行更復(fù)雜的匹配。
5. 結(jié)合 os.listdir() 篩選文件
import os import fnmatch # 獲取當(dāng)前目錄下的所有 .txt 文件 files = os.listdir(".") txt_files = fnmatch.filter(files, "*.txt") print(txt_files)
6. fnmatch vs glob
功能 | fnmatch | glob |
---|---|---|
主要用途 | 字符串匹配 | 文件查找 |
是否查找文件 | ? 僅匹配名稱(chēng) | ? 掃描目錄獲取匹配文件 |
常用方法 | fnmatch(), filter() | glob.glob(), rglob() |
7. 總結(jié)
fnmatch.fnmatch()
:匹配字符串(文件名)。fnmatch.fnmatchcase()
:大小寫(xiě)敏感的匹配。fnmatch.filter()
:從列表中過(guò)濾符合模式的文件。fnmatch.translate()
:將通配符轉(zhuǎn)換為正則表達(dá)式。
適用于 字符串匹配,如 文件篩選、日志分析、路徑匹配 等。如果需要查找磁盤(pán)上的文件,建議使用 glob
或 os.listdir()
結(jié)合 fnmatch.filter()
。
到此這篇關(guān)于Python中fnmatch模塊實(shí)現(xiàn)文件名匹配的文章就介紹到這了,更多相關(guān)Python fnmatch模塊 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用Python代碼自動(dòng)生成文獻(xiàn)的IEEE引用格式的實(shí)現(xiàn)
這篇文章主要介紹了用Python代碼自動(dòng)生成文獻(xiàn)的IEEE引用格式的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Python實(shí)現(xiàn)微信好友數(shù)據(jù)爬取及分析
這篇文章會(huì)基于Python對(duì)微信好友進(jìn)行數(shù)據(jù)分析,這里選擇的維度主要有:性別、頭像、簽名、位置,主要采用圖表和詞云兩種形式來(lái)呈現(xiàn)結(jié)果,其中,對(duì)文本類(lèi)信息會(huì)采用詞頻分析和情感分析兩種方法,感興趣的小伙伴可以了解一下2021-12-12使用Python的Bottle框架寫(xiě)一個(gè)簡(jiǎn)單的服務(wù)接口的示例
這篇文章主要介紹了使用Python的Bottle框架寫(xiě)一個(gè)簡(jiǎn)單的服務(wù)接口的示例,基于Linux系統(tǒng)環(huán)境,需要的朋友可以參考下2015-08-08基于Python實(shí)現(xiàn)一鍵獲取電腦瀏覽器的賬號(hào)密碼
發(fā)現(xiàn)很多人在學(xué)校圖書(shū)館喜歡用電腦占座,而且出去的時(shí)候經(jīng)常不鎖屏,為了讓大家養(yǎng)成良好的習(xí)慣,本文將分享一個(gè)小程序,可以快速獲取你存儲(chǔ)在電腦瀏覽器中的所有賬號(hào)和密碼,感興趣的可以了解一下2022-05-05