Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将两个CSV之间的差异写入新CSV_Python_Python 3.x_Csv - Fatal编程技术网

Python 将两个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

比较两个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,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!你的问题到底是什么?请拿起这本书,仔细阅读。您编写的程序中有什么不起作用?你被困在哪里?期望的输出是什么?您得到的输出是什么?了解输入文件是否总是按键排序(如您的示例中所示)可能会有所帮助。逻辑工作起来很有魅力。。。。。。谢谢兄弟。我将在几次更改后更新完整的脚本。