Предположим, у меня есть два CSV-файла, называемых A
и B
в Python
.Добавление двух CSV-файлов по столбцам
A
's head
выглядит следующим образом:
headerNameA1,headerNameA2
1.12412424,1
1,1
1,1
1,1
B
' s head
выглядит следующим образом:
headerNameB1,headerNameB2
1,1
1,1
1,1
1,1
Моя цель состоит в том, чтобы принять B
и добавить его на A
так, что A
будет выглядеть :
headerNameA1,headerNameA2,headerNameB1,headerNameB2
1,1,1.12412424,1
1,1,1,1
1,1,1,1
1,1,1,1
С другой вопрос, я спросил, вот код, который будет принимать A
и B
и объединить их в C
:
import csv
with open('A','rb') as f1, open('B','rb') as f2, open('out.csv','wb') as w:
writer = csv.writer(w)
r1,r2 = csv.reader(f1),csv.reader(f2)
while True:
try:
writer.writerow(next(r1)+next(r2))
except StopIteration:
break
Однако цель этого вопроса просто добавить B
на задней A
.
Это необходимо, если размер A
таков, что это слишком дорого для места на диске, чтобы сделать его копию как файл C
перед удалением A
.
Баш решение под названием через os.system
приемлемо
Насколько велики эти файлы CSV, что их объединенный размер является проблемой? Кроме того, код, который у вас есть, является странным способом написания 'для r1, r2 в izip (f1, f2):' - что с этим происходит? –
@JonClements В любом месте от 1 до 10 гигабайт, вычислений, выполняемых на удаленном сервере. Это был ответ от другого вопроса; функции прекрасны, поэтому я просто оставлю это. – user2763361
@JonClements По-видимому, мне нужно использовать 'ab' вместо' wb', но я не могу найти руководство где-нибудь – user2763361