I have two csv files. First is like
a, right
b, something
c, right
d, something
Second file
b, wrong
e, something
a, wrong
d, something
I want output like
b, right
e, something
a, right
d, something
I have tried this code
import csv
f1 = open("file1.csv")
f2 = open("file2.csv")
csv_f1 = csv.reader(f1)
csv_f2 = csv.reader(f2)
for row1 in csv_f1:
for row2 in csv_f2:
if row1[0] == row2[0]:
print row1[0], row1[1]
else:
print row2[0], row2[1]
If I understood you correctly. You need to compare the csvs line by line.
In that case you can use zip
in pythoonic
way
For loop looks like below
for row1, row2 in zip(csv_f1, csv_f2):
Full code
import csv
f1 = open("file1.csv")
f2 = open("file2.csv")
csv_f1 = csv.reader(f1)
csv_f2 = csv.reader(f2)
for row1, row2 in zip(csv_f1, csv_f2):
if row1[0] == row2[0]:
print(row1[0], row1[1])
else:
print(row2[0], row2[1])
By the way. It is in python3
. You seem to be using python2
With zip_longest
import csv, itertools
f1 = open("file1.csv")
f2 = open("file2.csv")
csv_f1 = csv.reader(f1)
csv_f2 = csv.reader(f2)
for row1, row2 in itertools.zip_longest(csv_f1, csv_f2, fillvalue=[0, 0]):
if row1[0] == row2[0]:
print(row1[0], row1[1])
else:
print(row2[0], row2[1])