将2个CSV之间的差异写入新的CSV

比较两个CSV文件中的一列数据,在本示例中为第一列。如果找到新数据,请将整行写入新的CSV。我将只使用第一列作为两个CSV文件之间的主键进行操作。


f1.csv

a,adata,adata2
b,bdata,bdata2
c,cdata,cdata2

f2.csv

a,cdata2
d,ddata,ddata2
e,edata,edata2
f,fdata,fdata2

Output:

f3.csv

d,fdata2

代码


for row1 in reader1:
    data = row1[0]
    for row2 in reader2:
        if data == row2[0]:
            print("eq")
        else :
            print("different")
xiaomao315452522 回答:将2个CSV之间的差异写入新的CSV

假设文件是​​无序的,则必须先将整个第一个文件的密钥读取到内存中,然后才能检查第二个文件中是否有新密钥。

keys = set()
for row in reader1:
    keys.add(row[0])

for row in reader2:
    if row[0] not in keys:
        writer.writerow(row)

如果排序,您可以做一些更聪明的事情,但这还不清楚。

本文链接:https://www.f2er.com/3167567.html

大家都在问