我有两个文件,第一个文件名为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)
我该怎么做才能使其正确附加?
谢谢你的帮助!
那这样的事呢 我读了两本书,将的最后一个元素追加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)