2014-02-19 95 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) 
相关问题