python 统计指定目录大小

Posted liy36

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 统计指定目录大小相关的知识,希望对你有一定的参考价值。

栈实现

def get_dir_size(path):
    size = 0
    dirlist = []
    if os.path.isdir(path):   # 判断path是否为文件夹
        dirlist.append(path)  # 追加文件夹路径到dirlist列表中
        while dirlist:  # 如果dirlist非空就进行循环计算文件大小
            now_dirname = dirlist.pop()  # 取出目录路径
            now_dir_list = os.listdir(now_dirname)  # 取出目录内的所有文件
            for name in now_dir_list:    # 循环目录内的所有文件判断类型
                name = os.path.join(now_dirname, name)  # 对文件进行路径拼接
                if os.path.isdir(name):  # 如果是目录就把路径追加到dirlist
                    dirlist.append(name)
                else:  # 如果不是目录就进行计算大小
                    size += os.path.getsize(name)
    elif os.path.isfile(path):
        size = os.path.getsize(path)
    return size


res = get_dir_size(path=path)
print(res)

递归函数实现

def get_dir_size(path):
    size = 0
    if os.path.isdir(path):
        allfile = os.listdir(path)
        for name in allfile:
            name = os.path.join(path, name)
            if os.path.isdir(name):
                size += get_dir_size(name)
            else:
                size += os.path.getsize(name)
    elif os.path.isfile(path):
        size = os.path.getsize(path)
    else:
        return None
    return size


res = get_dir_size(path)
print(res)

以上是关于python 统计指定目录大小的主要内容,如果未能解决你的问题,请参考以下文章

统计指定目录文件夹个数和文件类型和文件总大小

统计指定目录文件夹个数和文件类型和文件总大小

批量提取视频文件信息(文件大小及时长)并统计

linux下如何查看文件夹大小?硬盘使用情况?内存使用情况?

Centos-统计文件或目录占用磁盘空间-du

13 个非常有用的 Python 代码片段