尝试将csv作为行附加到另一个csv中,但出现此AttributeError:“_io.TextIOWrapper”对象没有属性“writerows”

tvz2xvvm  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(124)

我尝试将其中一个CSV中的内容作为行附加到另一个CSV中,但我收到此属性错误...我不确定如何修复它。我认为该问题与writer.writerows(row)有关,但我不知道应该将其更改为什么才能使.writerows(row)正常工作
这是我下面的代码,用于将第一个csv附加到第二个csv。

with open(csv1', 'r', encoding='utf8') as reader, open(csv2', 'a', encoding='utf8') as writer:
        for row in reader:
            writer.writerows(row)
wgx48brx

wgx48brx1#

使用write()代替,因为writerows()属于csv.writer,而不是普通的io。但是,如果要在文件末尾追加,则需要确保最后一行已经包含新行(即\n)。

with open('test1.csv', 'r', encoding='utf8') as reader:
    with open('test2.csv', 'a', encoding='utf8') as writer:
        writer.write("\n") # no need if the last row have new line already
        for line in reader:
            writer.write(line)

或者,如果要使用csv,可以使用writerows(),如以下代码所示:

import csv

with open('test1.csv', 'r', encoding='utf8') as reader:
    with open('test2.csv', 'a', encoding='utf8') as writer:
        csv_reader = csv.reader(reader)
        csv_writer = csv.writer(writer)
        csv_writer.writerow([]) # again, no need if the last row have new line already
        csv_writer.writerows(csv_reader)

相关问题