Python中文件遍歷的兩種方法
關(guān)于Python的文件遍歷,大概有兩種方法,一種是較為便利的os.walk(),還有一種是利用os.listdir()遞歸遍歷。
方法一:利用os.walk
os.walk可以自頂向下或者自底向上遍歷整個(gè)文件樹,然后返回一個(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ǔ)法,可以解決上面的問題。
相關(guān)文章
python中對(duì)二維列表中一維列表的調(diào)用方法
在本文里小編給大家整理的是關(guān)于python中對(duì)二維列表中一維列表的調(diào)用方法,正在學(xué)習(xí)的朋友們可以參考下。2020-06-06通過Turtle庫(kù)在Python中繪制一個(gè)鼠年福鼠
這篇文章主要介紹了通過Turtle庫(kù)在Python中繪制一個(gè)鼠年福鼠,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02python實(shí)現(xiàn)簡(jiǎn)單銀行管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單銀行管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10Python+Pytorch實(shí)戰(zhàn)之彩色圖片識(shí)別
這篇文章主要為大家詳細(xì)介紹了如何利用Python+Pytorch實(shí)現(xiàn)彩色圖片識(shí)別功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-09-09python利用datetime模塊計(jì)算程序運(yùn)行時(shí)間問題
這篇文章主要介紹了python利用datetime模塊計(jì)算程序運(yùn)行時(shí)間,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02wtfPython—Python中一組有趣微妙的代碼【收藏】
Wtfpython講解了大量的Python編譯器的內(nèi)容。這篇文章主要介紹了wtfPython-Python中一些奇妙的代碼,感興趣的朋友跟隨腳本之家小編一起看看吧2018-08-08使用__init__.py將文件夾設(shè)置成Python模塊示例詳解
這篇文章主要為大家介紹了使用__init__.py將文件夾設(shè)置成Python模塊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09