python用glob模塊匹配路徑的方法詳解
glob模塊是Python的一個(gè)標(biāo)準(zhǔn)庫,用于在文件系統(tǒng)中查找文件名匹配特定模式的文件路徑。
可以使用glob模塊進(jìn)行文件系統(tǒng)的通配符匹配,類似于在命令行中使用*和?通配符進(jìn)行文件查找。
glob
glob可以通過通配符查找路徑。例如
>>> import glob >>> for i in range(10): ... temp = open(str(i)+'.py','w') ... temp.close() ... >>> glob.glob(r'E:\Documents\00\1101\*.py')
返回值如下
[‘E:\Documents\00\1101\0.py’, ‘E:\Documents\00\1101\1.py’, ‘E:\Documents\00\1101\2.py’, ‘E:\Documents\00\1101\3.py’, ‘E:\Documents\00\1101\4.py’, ‘E:\Documents\00\1101\5.py’, ‘E:\Documents\00\1101\6.py’, ‘E:\Documents\00\1101\7.py’, ‘E:\Documents\00\1101\8.py’, ‘E:\Documents\00\1101\9.py’]
查看源碼可以發(fā)現(xiàn),glob是通過list(iglob(**))實(shí)現(xiàn)的,iglob返回一個(gè)符合要求路徑的迭代器,glob將其轉(zhuǎn)化為列表。
>>> it = glob.iglob(r'E:\Documents\00\1101\*.py') >>> next(it) 'E:\\Documents\\00\\1101\\0.py' >>> next(it) 'E:\\Documents\\00\\1101\\1.py' >>> next(it) 'E:\\Documents\\00\\1101\\2.py' >>> list(it) ['E:\\Documents\\00\\1101\\3.py', 'E:\\Documents\\00\\1101\\4.py', 'E:\\Documents\\00\\1101\\5.py', 'E:\\Documents\\00\\1101\\6.py', 'E:\\Documents\\00\\1101\\7.py', 'E:\\Documents\\00\\1101\\8.py', 'E:\\Documents\\00\\1101\\9.py']
fnmatch
除了*
可以被轉(zhuǎn)義之外,glob還可以將[]?
等字符進(jìn)行轉(zhuǎn)義,其方法結(jié)合了os.scandir()
和fnmatch.fnmatch()
函數(shù),例如
>>> glob.glob(r'E:\Documents\00\1101\[1-5].py')
[‘E:\Documents\00\1101\1.py’, ‘E:\Documents\00\1101\2.py’, ‘E:\Documents\00\1101\3.py’, ‘E:\Documents\00\1101\4.py’, ‘E:\Documents\00\1101\5.py’]
fnmatch是python中的文件夾匹配模塊,其匹配規(guī)則為
模式 | * | ? | [seq] | [!seq] |
---|---|---|---|---|
含意 | 所有字符 | 任何單個(gè)字符 | seq中任何字符 | 不在seq中的字符 |
fnmatch中封裝了一個(gè)正則表達(dá)式轉(zhuǎn)化函數(shù),可將fnmatch的匹配規(guī)則轉(zhuǎn)為正則表達(dá)式的匹配規(guī)則,例如
>>> fnmatch.translate('[1-5]*.py') '(?s:[1-5].*\\.py)\\Z'
到此這篇關(guān)于python用glob模塊匹配路徑的方法詳解的文章就介紹到這了,更多相關(guān)python glob匹配路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python字符串對(duì)齊方法使用(ljust()、rjust()和center())
這篇文章主要介紹了Python字符串對(duì)齊方法使用(ljust()、rjust()和center()),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Python設(shè)計(jì)模式之代理模式簡(jiǎn)單示例
這篇文章主要介紹了Python設(shè)計(jì)模式之代理模式,簡(jiǎn)單說明了代理模式的概念、原理,并結(jié)合Python實(shí)例形式分析了代理模式的相關(guān)定義與使用技巧,需要的朋友可以參考下2018-01-01python 實(shí)現(xiàn)IP子網(wǎng)計(jì)算
這篇文章主要介紹了python 實(shí)現(xiàn)IP子網(wǎng)計(jì)算的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-02-02Python實(shí)現(xiàn)九宮格式的朋友圈功能內(nèi)附“馬云”朋友圈
PIL(Python Imaging Library)是一個(gè)非常強(qiáng)大的Python庫,但是它支持Python2.X, 在Python3中則使用的是Pillow庫,它是從PIL中fork出來的一個(gè)分支。這篇文章主要介紹了用Python搞定九宮格式的朋友圈功能內(nèi)附“馬云”朋友圈 ,需要的朋友可以參考下2019-05-05python3+mysql查詢數(shù)據(jù)并通過郵件群發(fā)excel附件
這篇文章主要為大家詳細(xì)介紹了python3+mysql查詢數(shù)據(jù),并通過郵件群發(fā)excel附件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02Pytorch中expand()的使用(擴(kuò)展某個(gè)維度)
這篇文章主要介紹了Pytorch中expand()的使用(擴(kuò)展某個(gè)維度),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07python實(shí)現(xiàn)跨excel sheet復(fù)制代碼實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)跨excel sheet復(fù)制代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03