使用Windows的python和cygwin的python生成的文件之间的差异

时间:2014-02-20 18:59:54

标签: 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_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进行比较,我会得到

Files A and B have equal text, but are not binary equal.

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

1 个答案:

答案 0 :(得分:0)

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