最近整理电脑的硬盘时发现大量杂七杂八的文件,有些文件还很大,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))