python获取文件夹下的目录并计算该目录的大小

最近电脑硬盘空间满了,想要知道是哪个文件夹的空间太大,系统又不能看出每个文件夹的大小,只能每个文件夹都点开属性看,感觉比较麻烦。刚好最近有在学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.执行结果
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值