Suppose I have two CSV files called A
and B
in Python
.
A
\'s head
looks like:
header
You can consume one line at a time from both files, concatenating them together and writing to your outfile. The csv
module makes things a bit cleaner.
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
And as @RogerPate points out, you can make this slicker with itertools.izip
(just zip
if you're in python3)
from itertools import izip
import csv
with open('A','rb') as f1, open('B','rb') as f2, open('out.csv','wb') as w:
writer = csv.writer(w)
for r1,r2 in izip(csv.reader(f1),csv.reader(f2)):
writer.writerow(r1+r2)