【发布时间】:2016-12-24 01:49:36
【问题描述】:
我需要比较两个 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
【问题讨论】:
-
不是答案,而是注释:在 Linux 下,您可以在命令行上简单地执行
diff file1 file2。 -
看
difflib看:stackoverflow.com/questions/19120489/… -
对不起,我不想使用 difflib
-
您需要更准确地了解“差异”是什么以及如何打印它。什么是旧文件中有一行但新文件中没有?如果一行在新文件中但不在旧文件中?如果两个连续的行被交换?如果一条线移动到另一个位置?例如,诸如此类的细节使得比较 DNA 序列变得困难,但您需要确定您在问题中的确切含义。
-
@Chris_Rands 因为我需要再次使用 CSV 来处理 SQL 插入等其他事情。