4

如何获取所有子目录和文件的列表以及按大小升序排列的大小?

下面的代码让我得到所有文件的列表,但没有根据大小排序。请帮忙。

import os
import os.path, time
from os.path import join, getsize
count=0
for root, dirs, files in os.walk('Test'):
    for file in list(files):
        fileaddress = os.path.join(root, file)
        print("\nName:",fileaddress)
        print("Time:",time.strftime("%m/%d/%Y %I:%M:%S %p",time.localtime(os.path.getmtime(fileaddress))))
        count=count+1
print(count);
4

1 回答 1

5
import os
from os.path import join, getsize

file_list = []
for root, dirs, files in os.walk('Test'):
    file_list.extend( join(root,f) for f in files )
    #May be *slightly* faster at the expense of a little readability 
    # and a little memory
    # file_list.extend( [ join(root,f) for f in files ] ) 


print (sorted(file_list, key=getsize))

同样的事情dirs——虽然我不太确定目录的“大小”实际上是多少——你可能无法对那个目录进行排序getsize(如果可以的话,你不会得到这样的结果有意义)。

于 2012-11-08T21:56:17.883 回答