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

Python处理CSV字符替换遇报错:'_csv.reader'无'writerow'属性

解决CSV字符替换时的AttributeError问题

嘿,你的问题根源一眼就能看出来——你把写入对象的创建方法搞错了!你用csv.reader()来初始化writer变量,可csv.reader是专门用来读取CSV的工具类,它根本没有writerow方法,这就是为什么会抛出AttributeError。得用csv.writer()来创建写入对象才行!

另外你的代码还有几个小问题:

  • 直接把csv.reader读出的列表转成字符串,会带上[]和多余的引号,这不是处理CSV行的正确方式
  • 你重复调用了两次writer.writerow(new_line),这会导致每一行内容被输出两次
  • 字符替换的逻辑可以更高效,没必要先把整个行转成字符串再处理

给你两个解决方案,按需选择:

方案一:用CSV模块规范处理(推荐,适合复杂CSV)

这个方案会正确处理CSV的字段分隔、引号等格式,避免手动处理字符串带来的问题:

import csv

# 用with语句自动管理文件,不用手动close,更安全
with open('hashes.csv', 'r', newline='') as infile, open('hashesCor.csv', 'w', newline='') as outfile:
    # 初始化读取器,保持你的quotechar设置
    reader = csv.reader(infile, quotechar='|')
    # 初始化写入器,按你的需求设置delimiter和quotechar
    writer = csv.writer(outfile, delimiter=' ', quotechar='|')
    
    for row in reader:
        # 对每一行的每个字段单独替换字符
        processed_row = [field.replace('|', "','") for field in row]
        # 只写入一次处理后的行
        writer.writerow(processed_row)

方案二:纯文本替换(适合结构简单的CSV)

如果你的CSV没有复杂的嵌套引号、换行等格式,直接按普通文本替换会更简单:

with open('hashes.csv', 'r') as infile, open('hashesCor.csv', 'w') as outfile:
    for line in infile:
        # 直接替换每行里的|字符
        new_line = line.replace('|', "','")
        outfile.write(new_line)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:20:46