Python中文件遍歷的兩種方法
關(guān)于Python的文件遍歷,大概有兩種方法,一種是較為便利的os.walk(),還有一種是利用os.listdir()遞歸遍歷。
方法一:利用os.walk
os.walk可以自頂向下或者自底向上遍歷整個(gè)文件樹(shù),然后返回一個(gè)含有3個(gè)元素的tuple,(dirpath, dirnames, filenames),要注意的是,os.walk()會(huì)返回一個(gè)generater,所以調(diào)用的時(shí)候一定要放到for循環(huán)中。
import os
def walk_dir(dirname):
for root,dirs,files in os.walk(dirname):
for f in files:
yield os.path.join(root, f)
方法二:利用os.listdir()
這個(gè)方法也比較簡(jiǎn)單,列出目錄然后判斷是不是文件夾,不是的話直接返回文件路徑,是的話遞歸調(diào)用。
import os
def walk_dir2(dirname):
for d in os.listdir(dirname):
path = os.path.join(dirname, d)
if os.path.isdir(path):
#note recursive in for...in...
for f in walk_dir2(path):
yield f
else:
yield path
這里值得一提的是,由于函數(shù)中使用了yield,所以會(huì)被認(rèn)為是一個(gè)generater,遞歸調(diào)用的時(shí)候也需要放到for循環(huán)中,否則函數(shù)并不會(huì)被真正執(zhí)行。最新的Python 3.3中引入了yield from語(yǔ)法,可以解決上面的問(wèn)題。
相關(guān)文章
Python run()函數(shù)和start()函數(shù)的比較和差別介紹
這篇文章主要介紹了Python run()函數(shù)和start()函數(shù)的比較和差別介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
python Boltons庫(kù)實(shí)用功能探索(深度復(fù)制類(lèi)型檢查重試機(jī)制)
這篇文章主要為大家介紹了python Boltons庫(kù)實(shí)用功能探索包含深度復(fù)制類(lèi)型檢查重試機(jī)制及數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Python?Pandas中l(wèi)oc和iloc函數(shù)的基本用法示例
無(wú)論是loc還是iloc都是pandas中數(shù)據(jù)篩選的函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python?Pandas中l(wèi)oc和iloc函數(shù)的基本用法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
Python實(shí)現(xiàn)功能完整的個(gè)人員管理程序
這篇文章主要介紹了Python實(shí)現(xiàn)功能完整的個(gè)人員管理程序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12
Python標(biāo)準(zhǔn)模塊--ContextManager上下文管理器的具體用法
本篇文章主要介紹了Python標(biāo)準(zhǔn)模塊--ContextManager的具體用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
淺析Python中Generator的工作原理與應(yīng)用
這篇文章主要為大家詳細(xì)介紹了Python中Generator的工作原理與應(yīng)用的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編?一起學(xué)習(xí)一下2024-12-12
python pandas dataframe 行列選擇,切片操作方法
下面小編就為大家分享一篇python pandas dataframe 行列選擇,切片操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04

