首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python:递归统计文件夹和子文件夹中的所有文件类型和大小

递归统计文件夹和子文件夹中的所有文件类型和大小是一个常见的需求,可以通过使用Python编程语言来实现。下面是一个完善且全面的答案:

递归统计文件夹和子文件夹中的所有文件类型和大小的步骤如下:

  1. 导入必要的模块:
代码语言:txt
复制
import os
  1. 定义一个函数来递归遍历文件夹:
代码语言:txt
复制
def count_files(folder_path):
    file_types = {}
    total_size = 0

    for root, dirs, files in os.walk(folder_path):
        for file in files:
            file_path = os.path.join(root, file)
            file_size = os.path.getsize(file_path)
            total_size += file_size

            file_extension = os.path.splitext(file)[1]
            if file_extension in file_types:
                file_types[file_extension] += 1
            else:
                file_types[file_extension] = 1

    return file_types, total_size
  1. 调用函数并打印结果:
代码语言:txt
复制
folder_path = '路径/到/文件夹'
file_types, total_size = count_files(folder_path)

print("文件类型统计:")
for file_extension, count in file_types.items():
    print(file_extension, ":", count)

print("总文件大小:", total_size, "字节")

这段代码将会递归地遍历指定文件夹及其子文件夹中的所有文件,并统计每种文件类型的数量和总文件大小。最后,它会打印出文件类型统计和总文件大小。

这个功能可以在许多场景中使用,例如在文件管理系统中统计不同类型文件的数量和总大小,或者在备份系统中检查备份文件的大小。

腾讯云相关产品和产品介绍链接地址:

  • 对象存储 COS:腾讯云提供的高可靠、低成本的对象存储服务,适用于存储和管理大量非结构化数据。
  • 云服务器 CVM:腾讯云提供的弹性计算服务,可快速部署云服务器,满足不同业务需求。
  • 云函数 SCF:腾讯云提供的事件驱动的无服务器计算服务,可帮助开发者更轻松地构建和管理应用程序。
  • 云数据库 CDB:腾讯云提供的高性能、可扩展的关系型数据库服务,支持多种数据库引擎和存储引擎。

请注意,以上产品仅作为示例,实际选择产品应根据具体需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 通过Python计算一个文件夹大小

    在进行计算一个文件夹内容大小的时候,我们要考虑文件夹内都有什么内容,可能都是一个一个的单文件,也有可能都是子文件夹,或者二者都有,既然要计算整个文件夹的大小,我们当然要计算每一个文件的大小以及每一个子文件夹下的每一个子文件。计算每一个文件的大小我们肯定都可以计算到,或者如果我们知道一个文件夹内有子文件夹的数量,一个个遍历子文件夹的内容进行计算,但是如果我们不知道这个文件夹内到底有多少子文件夹呢?所以,根据我的思路,可以使用递归的方式进行计算每一个文件及每一个字文件夹的大小,但有个弊端就是在python中递归有最大递归层数,说不定会有哪个变态套了N多层文件夹,这样的话我们的程序可能会抛出异常,所以我们还要做一定的异常处理,总之闲话少说,见代码吧。代码如下:

    02

    Python获取指定目录下文件数量及总大小

    python 路径相关的函数 os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os.curdir:返回当前目录(’.’) os.chdir(dirname):改变工作目录到dirname os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false os.path.isfile(name):判断name是不是一个文件,不存在name也返回false os.path.exists(name):判断是否存在文件或目录name os.path.getsize(name):获得文件大小,如果name是目录返回0 os.path.abspath(name):获得绝对路径 os.path.normpath(path):规范path字符串形式 os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在) os.path.splitext():分离文件名与扩展名 os.path.join(path,name):连接目录与文件名或目录 os.path.basename(path):返回文件名 os.path.dirname(path):返回文件路径

    03
    领券