国产探花免费观看_亚洲丰满少妇自慰呻吟_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語法,可以解決上面的問題。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桐城市| 深泽县| 澄迈县| 亳州市| 河南省| 景洪市| 台州市| 宜城市| 榆林市| 东乡族自治县| 福鼎市| 兴宁市| 瑞金市| 福安市| 长宁县| 慈利县| 昆山市| 宁明县| 宁蒗| 宣汉县| 焉耆| 台湾省| 社旗县| 临泉县| 高唐县| 永州市| 高台县| 新龙县| 崇左市| 临朐县| 乐昌市| 琼结县| 渭南市| 兴仁县| 平凉市| 锡林郭勒盟| 正镶白旗| 肃宁县| 新昌县| 隆回县| 盐池县|