python萬用字元之glob模組

2021-08-28 16:29:55 字數 1693 閱讀 5087

萬用字元是一些特殊符號,主要有星號(*)和問號(?),用來模糊搜尋檔案,「*」可以匹配任意個數個符號, 「?」可以匹配單個字元。當查詢檔案夾時,可以使用它來代替乙個或多個真正字元;當不知道真正字元或者需要匹配符合一定條件的多個目標檔案時,可以使用萬用字元代替乙個或多個真正的字元。

英文 「globbing」意為統配,python在模組glob中定義了glob()函式,實現了對目錄內容進行匹配的功能,glob.glob()函式接受通配模式作為輸入,並返回所有匹配的檔名和路徑名列表,與os.listdir類似。

glob模組中的常用函式:

glob(pathname, recursive=false)

第乙個引數pathname為需要匹配的字串。(該引數應盡量加上r字首,以免發生不必要的錯誤) 

第二個引數代表遞迴呼叫,與特殊萬用字元「**」一同使用,預設為false。 

該函式返回乙個符合條件的路徑的字串列表,如果使用的是windows系統,路徑上的「\」符號會自動加上轉義符號變為「\\」。 

iglob(pathname, recursive=false)

引數與glob()一致。 

返回乙個迭代器,該迭代器不會同時儲存所有匹配到的路徑,而是逐個獲取匹配的檔案路徑名,遍歷該迭代器的結果與使用相同引數呼叫glob()的返回結果一致。

glob模組支援的萬用字元:

萬用字元功能

*匹配0或多個字元

**匹配所有檔案、目錄、子目錄和子目錄裡的檔案(3.5版本新增)

?匹配1個字元,與正規表示式裡的?不同

[exp]

匹配指定範圍內的字元,如:[1-9]匹配1至9範圍內的字元

[!exp]

匹配不在指定範圍內的字元

glob.glob函式使用示例

import glob

listglob =

listglob = glob.glob(r"/home/***/picture/*.png")

listglob.sort()

print listglob

print '--------------------'

listglob = glob.glob(r"/home/***/picture/0?.png")

listglob.sort()

print listglob

print '--------------------'

listglob = glob.glob(r"/home/***/picture/0[0,1,2].png")

listglob.sort()

print listglob

print '--------------------'

listglob = glob.glob(r"/home/***/picture/0[0-3].png")

listglob.sort()

print listglob

print '--------------------'

listglob = glob.iglob(r"/home/***/picture/0[a-z].png")

print listglob

for item in listglob:

print item

python萬用字元之glob模組

萬用字元是一些特殊符號,主要有星號 和問號 用來模糊搜尋檔案,可以匹配任意個數個符號,可以匹配單個字元。當查詢檔案夾時,可以使用它來代替乙個或多個真正字元 當不知道真正字元或者需要匹配符合一定條件的多個目標檔案時,可以使用萬用字元代替乙個或多個真正的字元。英文 globbing 意為統配,pytho...

python萬用字元之glob模組

萬用字元是一些特殊符號,主要有星號 和問號 用來模糊搜尋檔案,可以匹配任意個數個符號,可以匹配單個字元。當查詢檔案夾時,可以使用它來代替乙個或多個真正字元 當不知道真正字元或者需要匹配符合一定條件的多個目標檔案時,可以使用萬用字元代替乙個或多個真正的字元。英文 globbing 意為統配,pytho...

python標準庫之glob

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