当前位置:首页>python>python自动化系列:如何高效统计文件数量及其类型

python自动化系列:如何高效统计文件数量及其类型

  • 2026-10-11 05:34:00
python自动化系列:如何高效统计文件数量及其类型
作品介绍

作品名称:如何高效统计文件数量及其类型

用到的库:os、collections

作品简介:该实例用于统计指定目录中的文件和子目录数量,以及文件的类型分布。

实现过程

一、代码设计

    函数定义

    • count_files_and_dirs(directory, include_hidden=False):函数接受两个参数,directory 是要统计的目录路径,include_hidden 是一个布尔值,默认为 False,表示是否包括隐藏的文件和目录。

    变量初始化

    • total_files和 total_dirs 分别用于累计文件和目录的数量。
    • file_types是一个 defaultdict(int),用于统计不同文件类型的数量,键是文件扩展名,值是该类型的文件数量。

    遍历目录

    • 使用 os.walk(directory) 遍历指定目录及其所有子目录。os.walk 会生成一个三元组 (root, dirs, files),其中 root 是当前遍历到的目录路径,dirs 是该目录下的子目录列表,files 是该目录下的文件列表。
    • 如果 include_hidden 为 False,则过滤掉隐藏文件和隐藏目录。隐藏文件和目录以点 . 开头。
    • total_files和 total_dirs 分别累加当前目录下的文件和子目录数量。
    • 遍历 files 列表,使用 os.path.splitext(file)[1] 获取每个文件的扩展名,并转换为小写。如果文件有扩展名,则在 file_types 字典中对应的键值加一。

    根目录统计

    • 如果指定的 directory 是一个目录,则在最后将 total_dirs 加一,以统计根目录本身。

    返回值

    • 函数返回一个包含三个元素的元组:总文件数、总目录数、文件类型统计字典。

    示例调用

    • directory = './files':设置要统计的目录路径为当前目录下的 files 文件夹。
    • include_hidden = False:设置不包括隐藏文件和目录。
    • 调用 count_files_and_dirs(directory, include_hidden) 函数,并将结果赋值给 files、dirs 和 file_types。
    • 打印总文件数和总目录数。
    • 按扩展名排序并打印文件类型统计结果。
    """如何高效统计文件数量及其类型"""import osfrom collections import defaultdictdef count_files_and_dirs(directory, include_hidden=False):    total_files = 0    total_dirs = 0    file_types = defaultdict(int)    for root, dirs, files in os.walk(directory):        # 如果不包括隐藏文件,则过滤掉隐藏文件和隐藏目录        if not include_hidden:            files = [f for f in files if not f.startswith('.')]            dirs[:] = [d for d in dirs if not d.startswith('.')]  # 修改原列表,不影响后续遍历        total_files += len(files)        total_dirs += len(dirs)        # 统计文件类型        for file in files:            extension = os.path.splitext(file)[1].lower()  # 获取文件扩展名,并转换为小写            if extension:  # 忽略没有扩展名的文件                file_types[extension] += 1    # 统计根目录    if os.path.isdir(directory):        total_dirs += 1    return total_files, total_dirs, dict(file_types)directory = './files'include_hidden = False  # 设置是否包含隐藏文件files, dirs, file_types = count_files_and_dirs(directory, include_hidden)print(f"总文件: {files}, 总目录: {dirs}")print("文件类型统计:")for ext, count in sorted(file_types.items()):    print(f"{ext}: {count}")

              二、结语

              以上就是本次分享的全部内容,如果你有任何疑问或想要分享你的自动化办公经验,我们的评论区永远为你敞开。你的每一个点赞和转发,都是对我们最大的支持和鼓励!

              想要深入学习并获取文中的完整代码吗?很简单,关注我们的公众号,并回复文章标题,即可立即获取。

              再次感谢你的阅读,期待在下一次分享中与你相见!

              精选阅读
              python自动化系列:将多个工作簿数据分类汇总到一个工作簿
              python自动化系列:一键替换文档关键词
              python自动化系列:旋转PDF文件特定页面
              python自动化系列:过滤文本(txt)的内容
              python自动化系列:抓取财经精选新闻
              python自动化系列:一键重命名文件,轻松跟踪修改历史
              python自动化系列:一键删除PDF文档密码

              python自动化系列:pdf页面转图片

              python自动化系列:重新排列pdf页面的顺序

              python自动化系列:裁剪pdf特定页面特定区域

              python自动化系列:将Excel表格中的学生信息自动填充到一个word文档

              python自动化系列:轻松合并PDF文件特定页面

              python自动化系列:将Excel表格中的学生多条信息自动填充到一个Word文档

              python自动化系列:如何轻松为PDF文件添加统一水印

              python自动化系列:批量图片水印添加工具

              python自动化系列:一键提取PPT文字到Word

              python自动化系列:Python脚本实现GIF动画的快速生成

              python自动化系列:轻松获取豆瓣Top 250电影数据

              python自动化系列:自动删除重复图片并保留最新版本

              最新文章

              随机文章