溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用glob模塊

發(fā)布時(shí)間:2021-07-30 17:16:05 來(lái)源:億速云 閱讀:150 作者:Leah 欄目:大數(shù)據(jù)

本篇文章為大家展示了如何使用glob模塊,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。


glob模塊

功能描述:glob模塊可以使用Unix shell風(fēng)格的通配符匹配符合特定格式的文件和文件夾,跟windows的文件搜索功能差不多。glob模塊并非調(diào)用一個(gè)子shell實(shí)現(xiàn)搜索功能,而是在內(nèi)部調(diào)用了os.listdir()和fnmatch.fnmatch()。查看我之前寫(xiě)的fnmatch。

glob模塊共包含以下3個(gè)函數(shù):glob,isglob和escape。

 

glob(pathname, recursive=False)

第一個(gè)參數(shù)為需要匹配的字符串.(盡量在字符串前加r)
第二個(gè)參數(shù)代表遞歸調(diào)用,與特殊通配符“**”一同使用,默認(rèn)為False。
路徑格式可以是絕對(duì)路徑 /usr/src/Python-1.5/Makefile ,也可以是相對(duì)路徑../../Tools//.gif。
在3.5版本之后,glob函數(shù)支持一個(gè)特殊的通配符“**”,該通配符可以匹配指定路徑里所有文件和目錄,包括子目錄里的所有文件和目錄。使用這個(gè)通配符必須加上recursive=True參數(shù)。
(在有復(fù)雜目錄結(jié)構(gòu)的情況下使用該通配符可能會(huì)導(dǎo)致性能下降,拖累整個(gè)程序的運(yùn)行,需謹(jǐn)慎使用?。?/p>

例如,目錄中包含文件: 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/']
 

需要注意的是如果,文件名的前面含有點(diǎn)像這樣,card.gif 和.card.gif,需要下面這樣的方式處理通配符前加.

>>> import glob
>>> glob.glob('*.gif')
['card.gif']
>>> glob.glob('.*.gif')
['.card.gif']
   

iglob(pathname, recursive=False)

參數(shù)與glob()一致。
返回一個(gè)迭代器,遍歷該迭代器的結(jié)果和glob()的返回結(jié)果一致。

 

escape(pathname)

轉(zhuǎn)義所有的特殊字符('?','*'和'['])。如果您想匹配任意可能包含特殊字符的字符串,這將非常有用。驅(qū)動(dòng)器/ UNC共享點(diǎn)中的特殊字符不會(huì)轉(zhuǎn)義,例如在Windows系統(tǒng)上 escape('//?/c:/Quo vadis?.txt') 將返回 '//?/c:/Quo vadis[?].txt'。但是這些非法字符是無(wú)法創(chuàng)建文件的所以一般也就用來(lái)測(cè)試用了。

上述內(nèi)容就是如何使用glob模塊,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI