gpt4 book ai didi

Python:如何比较两个二进制文件?

转载 作者:行者123 更新时间:2023-12-04 14:28:14 25 4
gpt4 key购买 nike

在 python 中,我需要打印两个二进制文件的差异。我在看 difflib.Differ这做了很多。

但是不同假设文本行,因此输出不会列出字节索引和十六进制值差异。

我需要的是输出有什么字节不同,字节如何不同,两个字节的实际十六进制值。

在 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 比较时,它会将每个字符放入一个数组中,并在它前面加上一个 + 或 -。下面比较 x 和 y,然后我们查看输出:

   d = difflib.Differ()
e = d.compare(x,y) #set the compare output to a variable

for i in range(0,len(e)):
if i.startswith("-"): #if that char start with "-" is not a match
print(i + "index is different")

字符将以不匹配的“-”开头。 “+”表示它们是匹配的。

关于Python:如何比较两个二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com