使用python复制CSV文件的一列并将其添加到另一文件

Jos*_*osh 2 python csv

我有两个文件,第一个文件名为book1.csv,看起来像这样:

 header1,header2,header3,header4,header5
 1,2,3,4,5
 1,2,3,4,5
 1,2,3,4,5
Run Code Online (Sandbox Code Playgroud)

第二个文件称为book2.csv,如下所示:

 header1,header2,header3,header4,header5
 1,2,3,4
 1,2,3,4
 1,2,3,4
Run Code Online (Sandbox Code Playgroud)

我的目标是将book1.csv中包含5的列复制到book2.csv中的相应列。

我的代码的问题似乎是它没有正确地追加,也没有选择我要复制的索引,这也导致我选择了错误的索引位置。输出如下:

 header1,header2,header3,header4,header5
 1,2,3,4
 1,2,3,4
 1,2,3,41,2,3,4,5
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

 import csv

 with open('C:/Users/SAM/Desktop/book2.csv','a') as csvout:
    write=csv.writer(csvout, delimiter=',')
    with open('C:/Users/SAM/Desktop/book1.csv','rb') as csvfile1:
        read=csv.reader(csvfile1, delimiter=',')
        header=next(read)
        for row in read:
            row[5]=write.writerow(row)
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能使其正确附加?

谢谢你的帮助!

wfl*_*nny 5

那这样的事呢 我读了两本书,将的最后一个元素追加book1到该book2行中的每一行book2,并将其存储在列表中。然后,我将该列表的内容写入一个新.csv文件。

with open('book1.csv', 'r') as book1:
    with open('book2.csv', 'r') as book2:
        reader1 = csv.reader(book1, delimiter=',')
        reader2 = csv.reader(book2, delimiter=',')

        both = []
        fields = reader1.next() # read header row
        reader2.next() # read and ignore header row
        for row1, row2 in zip(reader1, reader2):
            row2.append(row1[-1])
            both.append(row2)

        with open('output.csv', 'w') as output:
            writer = csv.writer(output, delimiter=',')
            writer.writerow(fields) # write a header row
            writer.writerows(both)
Run Code Online (Sandbox Code Playgroud)