python实现计算文件夹大小

该代码定义了一个`sum`函数,用于递归计算指定路径下所有文件和子文件夹的总大小。它首先检查路径是否为文件夹,如果是,遍历其内容并调用自身进行递归计算;如果不是,直接获取文件大小。最后,通过`os.path.join`构建完整路径,并以MB或GB为单位显示结果。
摘要由CSDN通过智能技术生成
import os # 导入os模块
def sum(path):
    """
    主要方法
    """
    size = 0
    # 判断是文件夹
    if os.path.isdir(path): 
        # 遍历目录下的文件和文件夹再次执行sum()方法
        for i in os.listdir(path):
        # 将遍历出来的文件或文件夹与父文件夹拼起来(组成绝对路径)    
        new_path = os.path.join(path, i)
            # print(new_path)
            # 把下面递归返回的大小加到size上
            size += sum(new_path)
    else:
        # 不是文件就是文件夹咯 直接加到size上
        size += os.path.getsize(path)
    # 返回文件大小
    return size

# 这是一个使用的例子
# 对E盘遍历 listdir() 这个方法返回的是一个列表
for i in os.listdir(r"E:"):
    # 将遍历出来的文件或文件夹与父文件夹拼起来(组成绝对路径)
    path = os.path.join(r"E:", i)
    # sum默认返回size的单位是字节 与kb、mb、gb……得到换算是1024、1024^2、1024^3……
    size = sum(path) / float(1024 ** 3) # 举个例子 想要以mb为单位的话就除以1024的平方
    print("文件夹名:{} 大小:{} Gb".format(i, size))

执行结果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>