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

如何用Python统计txt文件中各目录下.csv文件数量并汇总?

解决方法

你的代码问题出在两个核心点:

  1. 每次循环都把x重置为0,完全没法实现累加计数
  2. 定义了res字典却没用来存储目录的累计数据,只是单次打印临时的1

正确的思路是用字典维护每个目录的CSV文件计数,遇到符合条件的文件时给对应目录的计数加1,最后统一输出结果:

res = {}
# 用with语句打开文件更安全,会自动处理文件关闭
with open('files.txt', 'r') as f:
    for line in f:
        path = line.strip()
        # 确保路径里有分隔符再分割,避免报错
        if '/' in path:
            dir_name, filename = path.split('/')
            # 判断当前文件是否是CSV格式
            if '.csv' in filename:
                # 目录不在字典里就初始化为0
                if dir_name not in res:
                    res[dir_name] = 0
                # 计数累加
                res[dir_name] += 1

# 遍历字典输出最终统计结果
for dir, count in res.items():
    print(f"{dir} : {count}")

运行后会得到正确输出:

test : 1
test2 : 2

如果想让代码更简洁,可以用collections.defaultdict自动处理不存在的键(默认值为0):

from collections import defaultdict

res = defaultdict(int)
with open('files.txt', 'r') as f:
    for line in f:
        path = line.strip()
        if '/' in path:
            dir_name, filename = path.split('/')
            if '.csv' in filename:
                res[dir_name] += 1

for dir, count in res.items():
    print(f"{dir} : {count}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:42:15