Python中glob庫實現檔名的匹配

2022-09-25 10:36:15 字數 1042 閱讀 7316

目錄

既然在pathlib庫中提到了glob()函式,那麼我們就專門用一篇內容講解檔名的匹配。其實我們有專門的乙個檔名匹配庫就叫:glob。

不過,glob庫的api非常小,但是僅僅應用於檔名的匹配綽綽有餘。只要是在實際的專案中需要過濾,或者匹配一組檔案,都可以使用該庫進行操作。

話不多說,下面我們使用萬用字元來匹配檔名,示例如下:

import glob

for name in sorted(glob.glob('text/*')):

print(name)

執行之後,效果如下:

這裡不僅用*萬用字元獲取了目錄下的所有檔案,而且還對其進行了排序。

問號(?)是用來匹配單字的,比如我們賽選上面1開頭的檔案。示例如下:

import glob

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

print(name)

執行之後,效果如下:

從上面兩個匹配我們程式設計客棧看出來,glob庫的匹配規則與正規表示式有些相似。既然它能匹配模糊的,乙個或多個字元,那麼肯定也可以匹配區間字元。

示例如下:

import glob

for name in glob.glob('text/15[a-z].*'):

print(name)

執行之後,效果如下:

當然,上面的檔名都是常規的檔名,都是用字母與數字組成的。但是,有些人比較怪,可能在檔名中包含了特殊的字元,比如上面的匹配字元「?*[」等。那怎麼辦呢?用反斜槓「\」轉義嗎?

其實,我們還有更簡單的,直接使用escape()函式進行操作。示例如下:

import glob

escape_str='?*'

for char in escape_str:

程式設計客棧 程式設計客棧pattern = 'text/*' + glob.pqhjcdescape(char) + '.png'

for name in glob.glob(pattern):

print(name)

執行之後,效果如下:

Python常用標準庫 glob

glob 檔案查詢,支援萬用字元 查詢目錄中所有以.sh為字尾的檔案 glob.glob home user sh home user 1.sh home user b.sh home user a.sh home user sum.sh 查詢目錄中出現單個字元並以.sh為字尾的檔案 glob.gl...

python標準庫之glob

python標準庫之glob介紹 glob 檔名模式匹配,不用遍歷整個目錄判斷每個檔案是不是符合。1 萬用字元 星號 匹配零個或多個字元 import glob for name in glob.glob dir print name 複製 dir file.txt dir file1.txt di...

python標準庫 glob介紹

glob 檔名模式匹配,不用遍歷整個目錄判斷每個檔案是不是符合。1.萬用字元 星號 匹配零個或多個字元 import glob for name in glob.glob name print name name file1.txt name file2.txt name file3.txt nam...