功能描述:glob模組可以使用unix shell風格的萬用字元匹配符合特定格式的檔案和資料夾,跟windows的檔案搜尋功能差不多。glob模組並非呼叫乙個子shell實現搜尋功能,而是在內部呼叫了os.listdir()和fnmatch.fnmatch()。檢視我之前寫的fnmatch。
glob模組共包含以下3個函式:glob,isglob和escape。
第乙個引數為需要匹配的字串.(盡量在字串前加r)
第二個引數代表遞迴呼叫,與特殊萬用字元「**」一同使用,預設為false。
路徑格式可以是絕對路徑 /usr/src/python-1.5/makefile ,也可以是相對路徑../../tools//.gif。
在3.5版本之後,glob函式支援乙個特殊的萬用字元「**」,該萬用字元可以匹配指定路徑裡所有檔案和目錄,包括子目錄裡的所有檔案和目錄。使用這個萬用字元必須加上recursive=true引數。
(在有複雜目錄結構的情況下使用該萬用字元可能會導致效能下降,拖累整個程式的執行,需謹慎使用!)
例如,目錄中包含檔案: 1.gif, 2.txt, card.gif裡面含有子目錄sub,sub目錄裡含有3.txt.
需要注意的是如果,檔名的前面含有點像這樣,card.gif 和.card.gif,需要下面這樣的方式處理萬用字元前加.>>
> import glob
>>> glob.glob('./[0-9].*'
)['./1.gif'
, './2.txt'
]>>> glob.glob('*.gif'
)['1.gif'
, 'card.gif'
]>>> glob.glob('?.gif'
)['1.gif'
]>>> glob.glob('**/*.txt'
, recursive=true)
['2.txt'
, 'sub/3.txt'
]>>> glob.glob('./**/'
, recursive=true)
['./'
, './sub/'
]
引數與glob()一致。>>
> import glob
>>> glob.glob('*.gif'
)['card.gif'
]>>> glob.glob('.*.gif'
)['.card.gif'
]
返回乙個迭代器,遍歷該迭代器的結果和glob()的返回結果一致。
轉義所有的特殊字元('?','*'和'['])。如果您想匹配任意可能包含特殊字元的字串,這將非常有用。驅動器/ unc共享點中的特殊字元不會轉義,例如在windows系統上 escape('//?/c:/quo vadis?.txt') 將返回 '//?/c:/quo vadis[?].txt'。但是這些非法字元是無法建立檔案的所以一般也就用來測試用了。
Python模組學習 glob模組
功能描述 glob模組可以使用unix shell風格的萬用字元匹配符合特定格式的檔案和資料夾,跟windows的檔案搜尋功能差不多。glob模組並非呼叫乙個子shell實現搜尋功能,而是在內部呼叫了os.listdir 和fnmatch.fnmatch glob模組共包含以下3個函式 glob p...
python萬用字元之glob模組
萬用字元是一些特殊符號,主要有星號 和問號 用來模糊搜尋檔案,可以匹配任意個數個符號,可以匹配單個字元。當查詢檔案夾時,可以使用它來代替乙個或多個真正字元 當不知道真正字元或者需要匹配符合一定條件的多個目標檔案時,可以使用萬用字元代替乙個或多個真正的字元。英文 globbing 意為統配,pytho...
python萬用字元之glob模組
萬用字元是一些特殊符號,主要有星號 和問號 用來模糊搜尋檔案,可以匹配任意個數個符號,可以匹配單個字元。當查詢檔案夾時,可以使用它來代替乙個或多個真正字元 當不知道真正字元或者需要匹配符合一定條件的多個目標檔案時,可以使用萬用字元代替乙個或多個真正的字元。英文 globbing 意為統配,pytho...