日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python中文件遍歷的兩種方法

系統 2049 0

關于Python的文件遍歷,大概有兩種方法,一種是較為便利的os.walk(),還有一種是利用os.listdir()遞歸遍歷。

方法一:利用os.walk

os.walk可以自頂向下或者自底向上遍歷整個文件樹,然后返回一個含有3個元素的tuple,(dirpath, dirnames, filenames),要注意的是,os.walk()會返回一個generater,所以調用的時候一定要放到for循環中。

復制代碼 代碼如下:

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()

這個方法也比較簡單,列出目錄然后判斷是不是文件夾,不是的話直接返回文件路徑,是的話遞歸調用。

復制代碼 代碼如下:

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

這里值得一提的是,由于函數中使用了yield,所以會被認為是一個generater,遞歸調用的時候也需要放到for循環中,否則函數并不會被真正執行。最新的Python 3.3中引入了yield from語法,可以解決上面的問題。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天水市| 泰和县| 江山市| 灌阳县| 乌恰县| 巴东县| 凯里市| 通江县| 体育| 桦川县| 托克托县| 香河县| 土默特左旗| 运城市| 城固县| 祁阳县| 桐柏县| 武邑县| 错那县| 淄博市| 静海县| 福泉市| 阿尔山市| 探索| 黔江区| 望都县| 延吉市| 博白县| 巴彦淖尔市| 东丽区| 鸡泽县| 横山县| 青浦区| 项城市| 闵行区| 海阳市| 阳泉市| 伊宁市| 江川县| 博乐市| 栾川县|