当前位置: 首页 > 面试题库 >

Python:比较两个csv文件并打印出差异

归松
2023-03-14
问题内容

我需要比较两个CSV文件并在第三个CSV文件中打印出差异。在我的情况下,第一个CSV是一个名为old.csv的哈希表的旧列表,第二个CSV是包含新旧哈希表的新哈希表。

这是我的代码:

import csv
t1 = open('old.csv', 'r')
t2 = open('new.csv', 'r')
fileone = t1.readlines()
filetwo = t2.readlines()
t1.close()
t2.close()

outFile = open('update.csv', 'w')
x = 0
for i in fileone:
    if i != filetwo[x]:
        outFile.write(filetwo[x])
    x += 1
outFile.close()

第三个文件是旧文件的副本,而不是更新文件。怎么了 ?我希望你能帮助我,非常感谢!

PS:我不想使用diff


问题答案:

问题在于您正在将中的每一行与fileone中的同一行进行比较filetwo。只要一个文件中有多余的一行,您就会发现这些行再也不相等了。尝试这个:

with open('old.csv', 'r') as t1, open('new.csv', 'r') as t2:
    fileone = t1.readlines()
    filetwo = t2.readlines()

with open('update.csv', 'w') as outFile:
    for line in filetwo:
        if line not in fileone:
            outFile.write(line)


 类似资料:
  • 我试图比较两个xml文件并显示差异,如果找到的话。 目前,我正在使用XML Diff来查找差异。 也查看了xnode.deepeQuals,但它也返回是否有任何区别。但不是什么区别。 任何帮助都很感激

  • 我试图比较两个XML文件。我的要求是比较新旧xml文件,如果有任何差异,将其合并到新的xml文件中。 但我也想要差异。请告诉我怎样才能得到不同之处。 我已经尝试过XMLUnit,但我不想使用它。

  • 我是Java编程的新手,我的任务是解析CSV文件并通过比较列打印出CSV文件的正确行,例如打印的行需要有唯一的第1和第2列,第3列必须包含“no”,第4列的值大于或等于12。 共5列。 此外,我不允许使用任何为您解析CSV的库。 我不确定使用什么数据结构来比较列。 我非常感谢任何建议!

  • 问题内容: 我试图突出显示两个数据框之间到底发生了什么变化。 假设我有两个Python Pandas数据框: 我的目标是输出一个HTML表: 标识已更改的行(可以是int,float,boolean,string) 输出具有相同,OLD和NEW值的行(理想情况下,将其输出到HTML表中),以便使用者可以清楚地看到两个数据框之间的变化: id Name score isEnrolled Commen

  • 我正在构建一个swing应用程序,它将在左边有一个项目列表,在右边有一个表。右侧显示的表数取决于左侧选择的项。我希望能够“突出显示”(setBackground)显示所有表中相同的所有行。 我读过关于重写prepareRenderer或GetTableCellRendererComponent的文章。然后,条件呈现逻辑位于重写的方法中。 DefaultTableCellRenderer GetTa

  • 问题内容: 我正在尝试创建一个包含2个列表并返回仅具有两个列表差异的列表的函数。 例: 结果应打印 到目前为止的功能: 第一个for循环将其排序,第二个将重复项删除。问题是结果 不是,所以不能完全删除重复项吗?我可以添加些什么来做到这一点。我不能使用任何特殊模块,.sort,set或其他任何东西,而只是基本地循环。 问题答案: 基本上,您希望将一个元素添加到新列表中(如果一个元素存在而另一个元素中