0
import os
def search_dir(dir,topdown=True):
    files = {}
    for root, dirs, files in os.walk(dir, topdown):
        for name in files:
            fileAdd = os.path.join(root,name)
            fileSize = os.path.getsize(fileAdd)
            files[fileAdd] = str(fileSize);
            print (fileAdd + ', Size:' + str(fileSize)+'kb')
        for name in dirs:
            fileAdd = os.path.join(root,name)
            fileSize = os.path.getsize(fileAdd)
            files[fileAdd] = fileSize;
            print (fileAdd + ', Size:'+ str(fileSize)+'kb')

dir = raw_input('please input the path:')
search_dir(dir)

for fileAdd in sorted(files):
    print("{0} size {1}kb".format(fileAdd, files[fileAdd]))

端末に「リストのインデックスは str ではなく整数でなければならない」と表示されますが、その理由がわかりません。

4

1 に答える 1

2

「files」変数を 2 回使用しました。

files = {}
for root, dirs, files in os.walk(dir, topdown):

そのうちの1つが行かなければなりません。

(暴言モード:ON)

この種のことは、デバッガーを使用すると非常に簡単に見つかります。

(暴言モード:OFF)

于 2013-07-26T22:01:32.277 に答える