计算文件夹大小

1.使用walk方法

def func():
    import os
    path = r'E:\PYTHON\OldboyClass\code\学习过程代码\day24\文件'
    result = 0
    file = os.walk(path)
    print(file)
    for a,b,c in file:
        print(a,b,c)
        for item in c:
            memory = os.stat(os.path.join(a,item)).st_size
            result+=memory
    return result
m = func()
print(m)

2.使用lisdir方法

 

import os
PATH = r'E:\PYTHON\OldboyClass\code\学习过程代码\day24\文件'
def func():
    total_size = 0
    lis = [PATH]
    while True:
        flag = True
        new_lis = []
        for item in lis:
            item1 = os.listdir(item)
            for each_item1 in item1:
                new_path = os.path.join(item, each_item1)
                if os.path.isfile(new_path):
                    file_size1 = os.path.getsize(new_path)
                    total_size+=file_size1
                else:
                    path = os.path.join(item, new_path)
                    new_lis.append(path)
                    flag = False
        lis = new_lis
        if flag:
            return total_size

result = func()
print(result)

 

3.lisdir计算文件夹大小(进阶) 

 

import os

path = r'E:\PYTHON\OldboyClass\code\学习过程代码\day24\文件'
lis = [path]
total_size = 0
while lis:
    path = lis.pop(0)
    """
    把每一层的路径全部都加到列表中 , 每删除一个求一个文件的大小 , 类似于列表或栈的思想
    """
    for item in os.listdir(path):
        abs_path = os.path.join(path,item)
        if os.path.isfile(abs_path):
            size = os.path.getsize(abs_path)
            total_size += size
        else:
            lis.append(abs_path)
print(total_size)

 

转载于:https://www.cnblogs.com/liuweida/p/10858237.html

<think>好的,用户现在的问题是关于如何在Linux系统中计算文件夹大小的命令。之前他们可能已经问过类似的问题,但需要更详细的解答。根据用户提供的引用内容,我需要整合这些信息,并按照他们的格式要求来回答。首先,用户提到的引用[1]指出使用du命令,这是关键。需要详细说明du的不同选项,比如-s和-h,以及如何组合使用。用户可能还希望知道其他相关命令,比如df和ls,但根据问题,重点应放在计算文件夹大小上。接下来,用户强调要使用正确的LaTeX格式,虽然这个问题可能不涉及数学公式,但需要确保任何命令中的变量或参数正确呈现。例如,在解释命令选项时,可能需要用$符号包裹,但根据用户的问题,可能不需要复杂的数学表达式,所以这部分可能较少。 用户还要求生成相关问题,我需要根据回答内容提出三个相关的问题。例如,如何排除子目录,如何按时间排序,或者如何自动化任务,这些都是与计算文件夹大小相关的常见后续问题。需要检查回答结构是否清晰,分步骤说明,每个步骤包含示例代码或命令,并正确添加引用标记。同时,确保回答中的命令正确无误,比如du -sh *,以及可能的组合命令,如排序或过滤结果。 最后,确保使用中文回答,避免使用Markdown格式,但用户给出的示例中使用了代码块,所以需要保留。同时,引用标记要自然地放在相关内容的末尾,如[^1]、[^2]等。</think>### Linux计算文件夹大小的常用命令及方法 #### 一、核心命令:`du`(disk usage) 1. **基础用法** ```bash du -sh /path/to/directory ``` - `-s`:显示目录总大小(不递归子目录单独统计) - `-h`:以人类可读单位输出(如KB、MB、GB)[^2] - 示例:`du -sh ~/Downloads` 显示下载文件夹大小 2. **多目录对比** ```bash du -sh /path/* | sort -rh ``` - `sort -rh`:按数值逆序排列结果[^2] - 示例:`du -sh * | sort -rh` 查看当前目录下所有子目录大小排序 3. **深度控制** ```bash du -h --max-depth=1 /path/to/directory ``` - `--max-depth=1`:仅显示一级子目录大小 #### 二、扩展命令组合 1. **结合`find`过滤大文件** ```bash find /path -type f -size +100M -exec du -h {} + | sort -rh ``` - 查找大于100MB的文件并排序 2. **图形化工具** ```bash ncdu /path/to/directory ``` - 交互式界面显示磁盘使用情况 #### 三、系统级监控(需root权限) 1. **文件系统总览** ```bash df -h /path/to/directory ``` - 查看目录所在分区的磁盘剩余空间[^3] 2. **Inode使用情况** ```bash df -i /path/to/directory ``` #### 四、数学表达式示例 假设某目录大小计算满足: $$ S = \sum_{i=1}^{n} f_i $$ 其中$f_i$表示目录下第$i$个文件的大小,$n$为文件总数[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值