Python 将两个CSV之间的差异写入新CSV
比较两个CSV文件中一列的数据,在本例中为第一列。如果发现新数据,将整行写入新CSV。我将只使用第一列作为两个CSV文件之间的主键进行操作Python 将两个CSV之间的差异写入新CSV,python,python-3.x,csv,Python,Python 3.x,Csv,比较两个CSV文件中一列的数据,在本例中为第一列。如果发现新数据,将整行写入新CSV。我将只使用第一列作为两个CSV文件之间的主键进行操作 f1.csv a,adata,adata2 b,bdata,bdata2 c,cdata,cdata2 f2.csv a,adata,adata2 b,bdata,bdata2 c,cdata,cdata2 d,ddata,ddata2 e,edata,edata2 f,fdata,fdata2 Output: f3.csv d,ddata,d
f1.csv
a,adata,adata2
b,bdata,bdata2
c,cdata,cdata2
f2.csv
a,adata,adata2
b,bdata,bdata2
c,cdata,cdata2
d,ddata,ddata2
e,edata,edata2
f,fdata,fdata2
Output:
f3.csv
d,ddata,ddata2
e,edata,edata2
f,fdata,fdata2
代码:
对于reader1中的第1行:
数据=第1行[0]
对于reader2中的第2行:
如果数据==第2行[0]:
打印(“eq”)
其他:
打印(“不同”)
假设文件无序,您必须先将整个第一个文件的密钥读入内存,然后才能检查第二个文件中是否有新密钥
keys = set()
for row in reader1:
keys.add(row[0])
for row in reader2:
if row[0] not in keys:
writer.writerow(row)
如果已排序,您可以做一些更聪明的事情,但这还不清楚。欢迎使用stackoverflow!你的问题到底是什么?请拿起这本书,仔细阅读。您编写的程序中有什么不起作用?你被困在哪里?期望的输出是什么?您得到的输出是什么?了解输入文件是否总是按键排序(如您的示例中所示)可能会有所帮助。逻辑工作起来很有魅力。。。。。。谢谢兄弟。我将在几次更改后更新完整的脚本。