我有两个csv文件。 首先就像
a, right
b, something
c, right
d, something
第二个文件
b, wrong
e, something
a, wrong
d, something
我想要输出
b, right
e, something
a, right
d, something
我已经尝试过此代码
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]
答案 0 :(得分:0)
如果我对您的理解正确。您需要逐行比较csvs。
在这种情况下,您可以以zip
的方式使用pythoonic
For循环如下所示
for row1, row2 in zip(csv_f1, csv_f2):
完整代码
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])
顺便说一句。它在python3
中。您似乎正在使用python2
使用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])