參考鏈接: 示例說明Python2.x和Python3.x之間的重要區別
import os,os.path
def func(arg,dirname,names):
? ? for filespath in names:
? ? ? ? print os.path.join(dirname,filespath)
?
if __name__=="__main__":
? ? print "==========os.walk================"
? ? index = 1
? ? for root,subdirs,files in os.walk("c:\\test"):
? ? ? ? print "第",index,"層"
? ? ? ? index += 1
? ? ? ? for filepath in files:
? ? ? ? ? ? print os.path.join(root,filepath)
? ? ? ? for sub in subdirs:
? ? ? ? ? ? print os.path.join(root,sub)
? ? print "==========os.path.walk================"
? ? os.path.walk("c:\\test",func,())?
??
結果如下:?
?
??
總結:?
(1)兩者都能實現達到同一個效果?
(2)在python3中,os.path.walk要被os.walk取代了,大家盡量用os.walk?
(3)os.walk明顯比os.path.walk要簡潔一些,起碼它不需要回調函數,遍歷的時候一目了然:root,subdirs,files?
(4)可能你在煩惱,os.path.walk的第三個參數arg有什么用,好吧,當你os.path.walk()賦值給arg的時候,你就可以在第二個參數對應的func中用arg了