将CSV内容作为行追加至另一CSV时遇AttributeError错误求助
解决CSV文件追加时的AttributeError错误
你的代码有两个核心问题:
- 你用
open()得到的writer是普通文件对象,它根本没有writerows方法,这就是报错的原因——普通文件对象只有write()这类基础方法,要操作CSV得用Python标准库的csv模块。 - 直接遍历文件对象拿到的是每行的字符串,就算文件对象有
writerows,直接传字符串会被拆成单个字符写入,结果完全乱掉。
正确的实现代码
import csv # 注意:文件名的引号要配对,你原代码里的'csv1'漏了开头的引号 with open('csv1.csv', 'r', encoding='utf8') as src_file, open('csv2.csv', 'a', encoding='utf8', newline='') as dest_file: # 用csv模块创建读取器和写入器 csv_reader = csv.reader(src_file) csv_writer = csv.writer(dest_file) # 一次性把源文件的所有行追加到目标文件 csv_writer.writerows(csv_reader)
额外注意事项
- 打开写入文件时加
newline=''是csv模块的推荐写法,能避免Windows系统下写入后出现多余空行。 - 如果源CSV有表头,但目标CSV已经有表头了,需要跳过源文件的表头行,只需在写入前加一行
next(csv_reader)即可。 - 确保文件名拼写正确,原代码里的
'csv1'和'csv2'要补全正确的文件名(比如带.csv后缀),同时引号要配对。
内容的提问来源于stack exchange,提问作者bananas
相关产品推荐
相关产品推荐

