python萬用字元之glob模組
阿新 • • 發佈:2018-12-13
萬用字元是一些特殊符號,主要有星號(*)和問號(?),用來模糊搜尋檔案,“*”可以匹配任意個數個符號, “?”可以匹配單個字元。當查詢資料夾時,可以使用它來代替一個或多個真正字元;當不知道真正字元或者需要匹配符合一定條件的多個目標檔案時,可以使用萬用字元代替一個或多個真正的字元。
英文 “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