国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中文件遍歷的兩種方法

2020-02-23 05:28:54
字體:
來源:轉載
供稿:網友

關于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語法,可以解決上面的問題。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 赣州市| 江陵县| 瑞丽市| 泌阳县| 高邑县| 阳原县| 文化| 泗水县| 六安市| 阿瓦提县| 仙居县| 长春市| 朝阳区| 东至县| 普格县| 平罗县| 古丈县| 台东市| 华容县| 财经| 苏尼特左旗| 五大连池市| 宜丰县| 揭阳市| 灵璧县| 广东省| 措美县| 卢氏县| 林周县| 莲花县| 屯门区| 永顺县| 白朗县| 香港 | 资兴市| 全椒县| 平南县| 凤阳县| 普兰县| 大厂| 应城市|