os.walk()
函數(shù)聲明:walk(top,topdown=True,onerror=None)
1>參數(shù)top表示需要遍歷的目錄樹的路徑
2>參數(shù)topdown的默認(rèn)值是"True",表示首先返回目錄樹下的文件脏毯,然后在遍歷目錄樹的子目錄.Topdown的值為"False"時(shí)闹究,則表示先遍歷目錄樹的子目錄,返回子目錄下的文件食店,最后返回根目錄下的文件
3>參數(shù)onerror的默認(rèn)值是"None",表示忽略文件遍歷時(shí)產(chǎn)生的錯(cuò)誤.如果不為空渣淤,則提供一個(gè)自定義函數(shù)提示錯(cuò)誤信息后繼續(xù)遍歷或拋出異常中止遍歷
4>該函數(shù)返回一個(gè)元組,該元組有3個(gè)元素吉嫩,這3個(gè)元素分別表示每次遍歷的路徑名价认,目錄列表和文件列表
os,walk()實(shí)例:
import os
def VisitDir(path):
for root,dirs,files in os.walk(path):
for filespath in files:
print os.path.join(root,filespath)
if name=="main":
path="/root"
VisitDir(path)
os.path.walk()
函數(shù)聲明:walk(top,func,arg)
1>參數(shù)top表示需要遍歷的目錄樹的路徑
2>參數(shù)func表示回調(diào)函數(shù),對(duì)遍歷路徑進(jìn)行處理.所謂回調(diào)函數(shù)自娩,是作為某個(gè)函數(shù)的參數(shù)使用用踩,當(dāng)某個(gè)時(shí)間觸發(fā)時(shí),程序?qū)⒄{(diào)用定義好的回調(diào)函數(shù)處理某個(gè)任務(wù).回調(diào)函數(shù)必須提供3個(gè)參數(shù):第1個(gè)參數(shù)為walk()的參數(shù)tag椒功,第2個(gè)參數(shù)表示目錄列表俊庇,第3個(gè)參數(shù)表示文件列表
3>參數(shù)arg是傳遞給回調(diào)參數(shù)func的元組.回調(diào)函數(shù)的一個(gè)參數(shù)必須是arg偏窝,為回調(diào)函數(shù)提供處理參數(shù).參數(shù)arg可以為空
os.path.walk()實(shí)例:
import os,os.path
def VisitDir(arg,dirname,names):
for filespath in name:
print os.path.join(dirname,filespath)
if name=="main":
path="/root"
os.path.walk(path,VisitDir,())
os.path.walk()與os.walk()產(chǎn)生的文件名列表并不相同.os.path.walk()產(chǎn)生目錄樹下的目錄路徑和文件路徑哈垢,而os.walk()只產(chǎn)生文件路徑
如下面的例程:
1 # -- coding: utf-8 --
2 import os
3 for root, dirs, files in os.walk('/media/cdrom0'):
4 open('mycd.cdc', 'a').write("%s %s %s" % (root,dirs,files))
完成的功能是講/media/cdrom0下的目錄文件寫入到mycd.cdc中拧晕。
代碼解釋:
聲明是 utf-8 編碼文本飘痛;
引入了 os 模塊墙基;
使用os.walk() 掃描光盤喂链,并返回三個(gè)對(duì)象画恰;
使用open()打開mycd.cdc 文件對(duì)象证九,并聲明成追加模式删豺,逐行記錄以上三個(gè)對(duì)象。
本文出自“pstary”