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

Python过滤CSV后仅导出一行问题修复及CSV导出方案

修复CSV过滤后仅导出一行的问题

原代码的核心问题

  • 每次匹配到CRITICAL或URGENT时,就以w(覆盖)模式打开文件,导致之前写入的内容被清空,最终只保留最后一行匹配的数据
  • 模块名大小写错误:Python中CSV模块是小写的csv,不是大写CSV
  • 语法错误:关键字拼写错误(ad→as)、变量名不一致(file和csv_file)、语句末尾缺少冒号、方法调用错误(csv_writerow应为writer.writerow)
  • 缩进不符合Python规范,导致代码逻辑混乱

修复后的代码

import csv

# 先读取所有CSV数据
with open('testfilename.csv', 'r') as csv_file:
    csv_reader = csv.reader(csv_file)
    rows = list(csv_reader)

filtered_critical = []
filtered_urgent = []

# 统一过滤所有数据
for row in rows:
    # 注意:若CSV含表头,需确认row[3]是状态列的正确索引(索引从0开始)
    if row[3] == "CRITICAL":
        filtered_critical.append(row)
    elif row[3] == "URGENT":
        filtered_urgent.append(row)

# 一次性写入CRITICAL分类数据
with open('Critical.csv', 'w', newline='') as critical_file:
    writer = csv.writer(critical_file)
    writer.writerows(filtered_critical)

# 一次性写入URGENT分类数据
with open('Urgent.csv', 'w', newline='') as urgent_file:
    writer = csv.writer(urgent_file)
    writer.writerows(filtered_urgent)

修复说明

  1. 先一次性读取全部CSV数据,再统一过滤,减少重复IO操作
  2. 收集完所有符合条件的数据后,再一次性写入目标文件,用writerows可直接写入整个列表,无需逐行循环
  3. 修正了所有语法错误、大小写问题与缩进问题
  4. 若原CSV包含表头,需确认row[3]对应状态列的正确索引

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:50:20