Python使用fnmatch模塊實(shí)現(xiàn)文件名匹配-創(chuàng)新互聯(lián)

Python使用fnmatch模塊實(shí)現(xiàn)文件名匹配?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括順河網(wǎng)站建設(shè)、順河網(wǎng)站制作、順河網(wǎng)頁(yè)制作以及順河網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,順河網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到順河省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

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'))

本文標(biāo)題:Python使用fnmatch模塊實(shí)現(xiàn)文件名匹配-創(chuàng)新互聯(lián)
文章起源:http://muchs.cn/article34/ceespe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站設(shè)計(jì)公司響應(yīng)式網(wǎng)站、GoogleApp開(kāi)發(fā)、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司