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

1 回答 1

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)
于 2014-02-19T23:16:42.427 回答