2014-02-19 58 views
-1
import os 
import sys 
rootdir = sys.argv[1] 
print os.path.abspath(rootdir) 

with open('output.txt','r') as fout: 
    for root, subFolders, files in os.walk(rootdir): 
     for file in files: 
     path = os.path.abspath(file) 
     print path 
     print os.path.getsize(path) 
+0

縮進是錯誤的。 (上次'for'後)請修復。 – Nabla

回答

0

os.walk返回一個列表,每個目錄在目錄樹遍歷中有一個條目。每個列表元素包含三個元素,第一個是目錄名稱,第二個是子目錄的名稱,第三個是該目錄中文件的名稱。這些名稱只是文件名,而不是完整或相對路徑。因此,通過調用os.path.abspath,您將文件名連接到工作目錄,而不是在遍歷期間找到文件的實際目錄。將文件名與它在其中找到的目錄連接:

import os 
import sys 
rootdir = sys.argv[1] 
print os.path.abspath(rootdir) 

with open('output.txt','r') as fout: 
    for root, subFolders, files in os.walk(rootdir): 
     for file in files: 
      path = os.path.join(root, file) 
      print path 
      print os.path.getsize(path) 
相關問題