【发布时间】:2018-08-06 03:12:19
【问题描述】:
我有 2 个名为“hosts”的文件(在不同的目录中)
我想用 python 比较它们,看看它们是否相同。如果它们不相同,我想在屏幕上打印差异。
到目前为止,我已经尝试过了
hosts0 = open(dst1 + "/hosts","r")
hosts1 = open(dst2 + "/hosts","r")
lines1 = hosts0.readlines()
for i,lines2 in enumerate(hosts1):
if lines2 != lines1[i]:
print "line ", i, " in hosts1 is different \n"
print lines2
else:
print "same"
但是当我运行它时,我得到了
File "./audit.py", line 34, in <module>
if lines2 != lines1[i]:
IndexError: list index out of range
这意味着其中一个主机的行数比另一个多。 有没有更好的方法来比较 2 个文件并报告差异?
【问题讨论】:
-
计算一个哈希值怎么样?作为快速找出它们是否不同的捷径
-
使用 difflib 或只是控制台上的 diff 命令
-
@MrE 我已经看过那个了。它没有回答我的问题。我是python的初学者,这个问题一旦发现差异就会谈到散列和退出。我不想退出。我想打印出所有的差异。 (谢谢你)
-
@user2799617 我会研究 difflib 但 diff 命令是一个 linux 命令。 Python 不认识它..!!
标签: python file comparison