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

如何读取指定路径下CSV文件的Labels列并统计重复项及出现次数?

解决方法:读取指定路径下所有CSV的"Labels"列并统计重复项

先修正你代码里的几个关键问题,再给出完整可运行的代码:

import os
import csv
from collections import Counter

items = []
# 目标目录路径,用os.path.join拼接更稳妥,也可以用原始字符串r"C:\Users\Bob\Desktop\CSVs"
directory = os.path.join("c:\\", "Users", "Bob", "Desktop", "CSVs")

for root, dirs, files in os.walk(directory):
    for file in files:
        if file.endswith(".csv"):
            # 必须拼接完整文件路径,不然open会找不到目标文件
            file_path = os.path.join(root, file)
            with open(file_path, newline='', encoding='utf-8') as csvFile:
                # csv.DictReader要传文件对象,不是文件名
                reader = csv.DictReader(csvFile)
                for row in reader:
                    # 加个判断避免没有"Labels"列时抛错
                    if "Labels" in row:
                        items.append(row["Labels"])

# 用Counter快速统计频次
counted = Counter(items)

# 打印所有重复项(出现次数>1)
print("Labels列重复项统计结果:")
for label, count in counted.items():
    if count > 1:
        print(f"* {label}: 出现{count}次")

关键细节说明:

  • 路径问题:os.walk返回的file只是文件名,必须用os.path.join(root, file)拼接完整路径,否则程序会在当前工作目录找文件,大概率找不到目标CSV。
  • CSV读取规范:csv.DictReader的参数是打开的文件对象而非文件名;加上newline=''是Python csv模块的官方建议,能避免跨平台的换行符解析问题。
  • 容错处理:增加if "Labels" in row的判断,防止部分CSV文件缺失目标列导致程序崩溃。
  • 统计效率:collections.Counter是专门做频次统计的工具,比手动循环统计简洁高效得多,最后可以筛选出出现次数大于1的项,精准展示重复内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:45:24