windows的python和cygwin的python生成的文件之间的差异

windows的python和cygwin的python生成的文件之间的差异,python,diff,difflib,Python,Diff,Difflib,我有一个用python生成文件的脚本,在某些情况下,该脚本是用windows中的python执行的,在其他情况下是用cygwin的python执行的 文件的文本是相同的,但是如果我使用difflib gen_file_data = open(gen_file) base_file_data = open(base_file) gen_file_content = gen_file_data.read().splitlines(True) base_file_content = base_file

我有一个用python生成文件的脚本,在某些情况下,该脚本是用windows中的python执行的,在其他情况下是用cygwin的python执行的

文件的文本是相同的,但是如果我使用difflib

gen_file_data = open(gen_file)
base_file_data = open(base_file)
gen_file_content = gen_file_data.read().splitlines(True)
base_file_content = base_file_data.read().splitlines(True)
gen_file_data.close()
base_file_data.close()
diff = difflib.unified_diff(gen_file_content, base_file_content, n=0)
diff = ''.join(diff)
这些文件是不同的

如果我使用md5,得到不同的散列

import hashlib
base_md5 = hashlib.md5(base_file_content).hexdigest()
gen_md5 = hashlib.md5(gen_file_content).hexdigest()
print gen_md5, base_md5
如果我将这些文件与kdiff3进行比较,我会得到


如何比较两个文件之间的文本差异?一个是使用windows的python生成的,另一个是使用windows的python生成的。

问题可能是行尾编码。Windows使用'\r\n',而cygwin模拟的unix使用'\n'

您认为这可能是一个终点吗?Windows使用'\r\n',而cygwin模拟的unix使用'\n'@user590028谢谢,我在文件内容中添加了.替换'\r\n','\n',这可以解决问题。@user590028请将您的评论作为答案?为了结束这个问题。
Files A and B have equal text, but are not binary equal.