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

首頁 > 編程 > Python > 正文

Python中文件遍歷的兩種方法

2019-11-25 18:22:15
字體:
供稿:網(wǎng)友

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

方法一:利用os.walk

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

復(fù)制代碼 代碼如下:

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

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

復(fù)制代碼 代碼如下:

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,所以會被認(rèn)為是一個generater,遞歸調(diào)用的時候也需要放到for循環(huán)中,否則函數(shù)并不會被真正執(zhí)行。最新的Python 3.3中引入了yield from語法,可以解決上面的問題。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 贵溪市| 阜阳市| 临漳县| 县级市| 兰州市| 扎赉特旗| 通化县| 封丘县| 舟山市| 沾化县| 宝清县| 陕西省| 崇义县| 泸水县| 奉新县| 苍溪县| 云梦县| 若尔盖县| 泰兴市| 松桃| 鄂托克前旗| 牙克石市| 河津市| 馆陶县| 城市| 丹棱县| 新宁县| 鹤庆县| 隆安县| 呼玛县| 镇巴县| 章丘市| 新绛县| 祁东县| 绥中县| 石嘴山市| 淳安县| 珲春市| 呼玛县| 霍州市| 囊谦县|