1. 程式人生 > >python萬用字元之glob模組

python萬用字元之glob模組

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

英文 “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/xxx/picture/*.png")
listglob.sort()
print listglob

print '--------------------'
listglob = glob.glob(r"/home/xxx/picture/0?.png")
listglob.sort()
print listglob

print '--------------------'
listglob = glob.glob(r"/home/xxx/picture/0[0,1,2].png")
listglob.sort()
print listglob

print '--------------------'
listglob = glob.glob(r"/home/xxx/picture/0[0-3].png")
listglob.sort()
print listglob

print '--------------------'
listglob = glob.iglob(r"/home/xxx/picture/0[a-z].png")
print listglob
for item in listglob:
    print item

--------------------- 本文來自 -牧野- 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/dcrmg/article/details/78309469?utm_source=copy