我有一个用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生成。
答案 0 :(得分:0)
问题可能是行尾编码。 Windows使用'\ r \ n',而unix(cygwin模拟)使用'\ n'