匹配两个 csv 文件之间的数据并替换数据
Match data between two csv files and replace data
我有两个 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]
如果我没理解错的话。你需要逐行比较csvs。
在这种情况下,您可以 pythoonic
方式使用 zip
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])
我有两个 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]
如果我没理解错的话。你需要逐行比较csvs。
在这种情况下,您可以 pythoonic
方式使用 zip
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])