最近整理电脑的硬盘时发现大量杂七杂八的文件,有些文件还很大,Windows查看文件夹大小还挺麻烦,遂临时用Python写了个脚本,统计目标文件夹里的各个文件、文件夹的大小,方便文件整理。

  现在把脚本代码贴出来(用的是Python3):

1 # -*- coding: utf-8 -*
 2 import os
 3 
 4 
 5 def func_file(dirpath ):
 6     sum_file = 0
 7     lst = os.listdir(dirpath)  # 大文件夹下一级文件列表, 包括文件夹
 8     lst.sort()  # 文件按名称排序方便查看
 9     for fe in lst:
10         new_dir = dirpath+'\\'+fe
11         if os.path.isfile(new_dir):
12             getsize = os.path.getsize(new_dir)
13             sum_file += getsize
14         else:
15             new_dir_size = func_file(new_dir)
16             sum_file += new_dir_size
17     return sum_file
18 
19 
20 def main(file_path):
21     # 计算目标文件夹下一级的文件及文件夹的大小
22     print("目标文件夹路径是:%s" % file_path)
23     sum_all = 0
24     lst = os.listdir(file_path)
25     print("目标文件夹内文件列表:\n %s" % lst)
26     for fe in lst:
27         new_dir = file_path+'\\'+fe
28         if os.path.isfile(new_dir):
29             getsize = os.path.getsize(new_dir)
30             print('文件: %s的大小为 %.3f Mb' % (fe, getsize/1024/1024))
31             sum_all += getsize
32         else:
33             new_dir_size = func_file(new_dir)
34             print('文件夹: %s 的大小为 %.3f Mb' % (new_dir, new_dir_size/1024/1024))
35             sum_all += new_dir_size
36     return sum_all
37 
38 
39 if __name__ == '__main__':
40     file_path = "C:\\Users\\Administrator\\Desktop"  # 这里设置需要统计的目标文件夹路径
41     name = os.path.basename(file_path)
42     print("目标文件夹是:%s" % name)
43     num_list = main(file_path)
44     print('文件夹: %s 的总大小为 %.3f Mb' % (name, num_list/1024/1024))