python模組學習之glob模組

2021-09-19 18:30:37 字數 1468 閱讀 7629

功能描述: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.

>>

> 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/'

]

需要注意的是如果,檔名的前面含有點像這樣,card.gif 和.card.gif,需要下面這樣的方式處理萬用字元前加.

>>

> import glob

>>> glob.glob('*.gif'

)['card.gif'

]>>> glob.glob('.*.gif'

)['.card.gif'

]

引數與glob()一致。 

返回乙個迭代器,遍歷該迭代器的結果和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...