在Python中,我需要打印两个二进制文件的差异。我看了一下
然而difflib假定文本行,所以输出不列出字节索引和十六进制值的差异。
我需要的是输出有哪些字节不同,字节如何不同,两个字节的实际十六进制值。
在Python中,如何比较两个二进制文件(输出:字节差异索引,两个字节的十六进制值)?
我正在做这样的事情:
但是这个方法并没有输出差异的字节索引。而且它也没有打印十六进制值。
difflib.Differ
,它能做很多事情。然而difflib假定文本行,所以输出不列出字节索引和十六进制值的差异。
我需要的是输出有哪些字节不同,字节如何不同,两个字节的实际十六进制值。
在Python中,如何比较两个二进制文件(输出:字节差异索引,两个字节的十六进制值)?
我正在做这样的事情:
# /usr/bin/env python2
import difflib
x = open('/path/to/file1', 'r').read()
y = open('/path/to/file2', 'r').read()
print '\n'.join(difflib.Differ().compare(x, y))
但是这个方法并没有输出差异的字节索引。而且它也没有打印十六进制值。
difflib
。但我觉得应该有一种优雅的解决方案可以使用difflib
。 - Trevor Boyd Smithman 1 cmp
文档,并看到了"逐字节比较两个文件... --verbose输出字节编号和不同的字节值"等信息。我有一种隐隐的感觉,只需从Python中调用cmp命令将是最优雅的解决方案。 - Trevor Boyd Smithcmp
还涵盖了所有边缘情况(例如一个文件比另一个文件大等)。 - Trevor Boyd Smith