标签:
__author__ = ‘baron‘
import os
import codecs
from os.path import join, getsize
def getdirsize(dirDict, rootpath):
    dirsize = 0L
    for root, dirs, files in os.walk(rootpath):
        if root == rootpath:
            for dir in dirs:
                dirDict, fsize = getdirsize(dirDict, join(rootpath, dir))
                dirsize += fsize
            try:
                dirsize += sum([getsize(join(rootpath, file)) for file in files])
            except:
                pass
    if dirsize / 1024 / 1024 != 0 and rootpath not in dirDict:
        dirDict[rootpath] = dirsize / 1024 / 1024
        print len(dirDict)
    return dirDict, dirsize
if __name__ == ‘__main__‘:
    write_path = ‘C:\\Users\\baron\\Desktop\\LOG.txt‘
    write_file = codecs.open(write_path, ‘w‘, encoding=‘UTF-8‘)
    rootpath = ‘C:\\‘
    dirDict = {}
    for file in os.listdir(rootpath):
        if file.startswith(‘$‘):
            continue
        if os.path.isdir(join(rootpath,file)):
            dirDict, fsize = getdirsize(dirDict, join(rootpath, file))
            seq_dict = sorted(dirDict.items(), key=lambda t: t[1], reverse=True)
            for item in seq_dict:
                write_file.write(‘\t‘.join([item[0], ‘%.1f‘ % item[1]]).decode(‘gbk‘)+‘\n‘) 

标签:
原文地址:http://my.oschina.net/iuranus/blog/510666