最近电脑硬盘空间满了,想要知道是哪个文件夹的空间太大,系统又不能看出每个文件夹的大小,只能每个文件夹都点开属性看,感觉比较麻烦。刚好最近有在学Python,就想着可不可用python实现查看文件夹里每个文件夹的大小。
1.判断该文件夹下的内容是文件夹还是文件:
代码:
#os.path.exists(dir) 判断该目录是否存在,存在则返回Ture
if os.path.exists(dir):
files = os.listdir(dir)
print(files)
#循环
for file_name in files:
#拼接了路径
fullpath = os.path.join(dir, file_name)
#print(fullpath,end='\t')
#判断一个路径是否是一个文件,是否目录
if os.path.isdir(fullpath):
path_size = get_dir_size(fullpath)
print('我是一个文件')
elif os.path.isfile(fullpath):
print('我是一个文件')
2.获取文件夹的大小
代码:
def get_dir_size(dir):
'''
:brief:获取该目录的大小
:param dir: 文件夹目录
:return:改文件夹的大小:MB
'''
size = 0
#遍历该文件夹下的文件并计算大小
for root, dirs, files in os.walk(dir):
size += sum([getsize(join(root, name)) for name in files])
return size / 1024 / 1024
3.全部代码:
import os
from os.path import join, getsize
# dir = r"C:\Users\10176\Desktop\1"
dir = 'C:\\Program Files (x86)'
def get_dir_size(dir):
'''
:brief:获取该目录的大小
:param dir: 文件夹目录
:return:改文件夹的大小:MB
'''
size = 0
#遍历该文件夹下的文件并计算大小
for root, dirs, files in os.walk(dir):
size += sum([getsize(join(root, name)) for name in files])
return size / 1024 / 1024
#os.path.exists(dir) 判断该目录是否存在,存在则返回Ture
if os.path.exists(dir):
files = os.listdir(dir)
print(files)
#循环
for file_name in files:
#拼接了路径
fullpath = os.path.join(dir, file_name)
#print(fullpath,end='\t')
#判断一个路径是否是一个文件,是否目录
if os.path.isdir(fullpath):
path_size = get_dir_size(fullpath)
#只打印大于1000M的文件夹
if path_size > 1000:
print("{}我是一个目录".format(fullpath), end='\t')
print("大小为{}M".format(path_size))
# elif os.path.isfile(fullpath):
# print('我是一个文件')
4.执行结果