Python模組glob函式示例詳解教程

2022-09-27 02:57:09 字數 1390 閱讀 3872

目錄

glob模組也是python標準庫中乙個重要的模組,主要用來查詢符合特定規則的目錄和檔案,並將搜尋的到的結果返回到乙個列表中。使用這個模組最主要的原因就是,該模組支援幾個特殊的正則萬用字元,用起來賊方便,這個將會在下方為大家進行詳細講解。

使用glob模組能夠快速查詢我們想要的目錄和檔案,就是由於它支援*、**、?、[ ]這三個萬用字元,那麼它們到底是 什麼意思呢?

*:匹配0個或多個字元;

**:程式設計客棧匹配所有檔案、目錄、子目錄和子目錄裡的檔案(3.5版本新增);

?:代匹配乙個字元;

:匹配指定範圍內的字元,如[0-9]匹配數字,[a-z]匹配小寫字母;

注意:這3個萬用字元的用法,將在講函式的時候,一起帶大家操作一遍; glob庫中主要的3個函式

其實glob庫很簡單,只有3個主要函式供我們使用,它們分別是glob()、iglob()、escape()函式,因此學習起來特別容易。

glob.glob():返回符合匹配條件的所有檔案的路徑;

glob.iglob():返回乙個迭代器物件,需要迴圈遍歷獲取每個元素,得到的也是符合匹配條件的所有檔案的路徑;

glob.escape():esfxdpggjncape可以忽略所有的特殊字元,就是星號、問號、中括號,用處不大;

recursive=false:代表遞迴呼叫,與特殊萬用字元「**」一同使用,預設為false,false表示不遞迴呼叫,true表示遞迴呼叫;

path1 = r"c:\users\黃偉\desktop\publish\os模組\test_shutil_a\[0-9].png"

glob.glob(path1)

path2 = r"c:\user程式設計客棧s\黃偉\desktop\publish\os模組\test_shutil_a\[0-9a-z].*"

glob.glob(path2)

結果如下:

p = r"c:\users\黃偉\desktop\publish\os模組\test_shutil_a\[0-9].png"

a = glob.iglob(path1)

for i in a:

print(i)

結果如下:

通過下方兩行**的對比,可以看出escape()函式只是讓*只表示它本來的意思,而不再具有萬用字元的作用。

glob.glob('t*')

glob.escape('t*')

結果如下:

通過上面的敘述可以知道,glob庫其實並沒有很多東西,就記住3個萬用字元、3個函式即可。對於我們來說,glob庫就是方便我們查詢檔案而誕生的,因此我們好好掌握glob程式設計客棧()這乙個函式,其實就夠了,其它的知道、會用就行。

我們還需要注意一點,os庫、shutil庫、glob庫是互補的,我們要善於發揮各自的優勢,充分利用它們的優勢,幫助我們快速的操作檔案和資料夾。

Python模組學習 glob模組

功能描述 glob模組可以使用unix shell風格的萬用字元匹配符合特定格式的檔案和資料夾,跟windows的檔案搜尋功能差不多。glob模組並非呼叫乙個子shell實現搜尋功能,而是在內部呼叫了os.listdir 和fnmatch.fnmatch glob模組共包含以下3個函式 glob p...

python模組學習之glob模組

功能描述 glob模組可以使用unix shell風格的萬用字元匹配符合特定格式的檔案和資料夾,跟windows的檔案搜尋功能差不多。glob模組並非呼叫乙個子shell實現搜尋功能,而是在內部呼叫了os.listdir 和fnmatch.fnmatch 檢視我之前寫的fnmatch。glob模組共...

python萬用字元之glob模組

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