溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python文件名的匹配之clob庫(kù)怎么用

發(fā)布時(shí)間:2021-05-12 10:26:57 來(lái)源:億速云 閱讀:130 作者:小新 欄目:開(kāi)發(fā)技術(shù)

小編給大家分享一下Python文件名的匹配之clob庫(kù)怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

一、前言

既然在Pathlib庫(kù)中提到了glob()函數(shù),那么我們就專(zhuān)門(mén)用一篇內(nèi)容講解文件名的匹配。其實(shí)我們有專(zhuān)門(mén)的一個(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)行之后,效果如下:

Python文件名的匹配之clob庫(kù)怎么用

這里不僅用*通配符獲取了目錄下的所有文件,而且還對(duì)其進(jìn)行了排序。

三、問(wèn)號(hào)(?)

問(wèn)號(hào)(?)是用來(lái)匹配單字的,比如我們賽選上面1開(kāi)頭的圖片文件。示例如下:

import glob

for name in glob.glob('text/1?.png'):
    print(name)

運(yùn)行之后,效果如下:

Python文件名的匹配之clob庫(kù)怎么用

四、區(qū)間匹配([0-9][a-z][A-Z])

從上面兩個(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)行之后,效果如下:

Python文件名的匹配之clob庫(kù)怎么用

五、轉(zhuǎ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)行之后,效果如下:

Python文件名的匹配之clob庫(kù)怎么用

python的五大特點(diǎn)是什么

python的五大特點(diǎn):1.簡(jiǎn)單易學(xué),開(kāi)發(fā)程序時(shí),專(zhuān)注的是解決問(wèn)題,而不是搞明白語(yǔ)言本身。2.面向?qū)ο?,與其他主要的語(yǔ)言如C++和Java相比, Python以一種非常強(qiáng)大又簡(jiǎn)單的方式實(shí)現(xiàn)面向?qū)ο缶幊獭?.可移植性,Python程序無(wú)需修改就可以在各種平臺(tái)上運(yùn)行。4.解釋性,Python語(yǔ)言寫(xiě)的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序。5.開(kāi)源,Python是 FLOSS(自由/開(kāi)放源碼軟件)之一。

看完了這篇文章,相信你對(duì)“Python文件名的匹配之clob庫(kù)怎么用”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI