You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计顶级目录总文件数(含子目录及空目录)

解决顶级目录总文件数统计问题

问题说明

需要统计目标路径下所有顶级目录包含的总文件数(含嵌套子目录内的文件),包括文件数为0的目录,输出格式为目录名: 文件总数。

原代码问题分析

你提供的代码出现每个目录文件数显示为1的原因有两点:

  1. 路径判断错误:os.listdir(DOCUMENTS)返回的是目录/文件名的相对字符串,直接用os.path.isdir(directory)判断的是当前工作目录下的该名称是否为目录,而非DOCUMENTS路径下的目标项,导致部分真实目录未被识别。
  2. 变量初始化遗漏:filecount仅在if os.path.isdir(directory)块内初始化,当遇到非目录项时,print语句会复用上一次循环的filecount值,造成结果错误。

修正后的代码

import os

# 替换为你的目标根路径
DOCUMENTS = "/your/target/root/path"

for entry_name in os.listdir(DOCUMENTS):
    # 拼接完整路径,确保判断和遍历的是目标路径下的项
    entry_full_path = os.path.join(DOCUMENTS, entry_name)
    # 仅处理顶级目录
    if os.path.isdir(entry_full_path):
        total_files = 0
        # 遍历目录下所有子目录和文件,累加文件数
        for _, _, files in os.walk(entry_full_path):
            total_files += len(files)
    else:
        # 跳过非目录项(如果需要统计文件可以调整,这里按需求只处理目录)
        continue
    # 按要求格式输出
    print(f"{entry_name}: {total_files}")

输出示例

  • top-level-dir1: 234
  • top-level-dir2: 0
  • top-level-dir3: 5

内容的提问来源于stack exchange,提问作者Kilgore Trout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:35:17