如何使用Python在二进制文件中找到两个文件偏移之间的特定字节序列?

时间:2017-04-30 08:57:33

标签: python binary python-3.4

  

如何使用Python在二进制文件中找到两个文件偏移之间的特定字节序列?

我想打开一个二进制文件来搜索两个文件偏移0x66,0x66,...,0x66start之间的特定字节序列end

我的想法是使用rb打开文件,然后使用start将文件位置设置为fseek()。然后对于文件中的每个位置,我读取16个字节并将它们与上面的序列进行比较(长度为16个字节)。

但是,必须有一种更简单的方法吗?

1 个答案:

答案 0 :(得分:2)

你没有说它是一个大文件,所以让我们假设它很容易融入内存。 fseek到起始位置,然后读取end-start字节。你将有一个bytestring,然后你可以使用.index来找到你的序列:

with open("the_file.bin", "rb") as f:
    f.fseek(start)
    data = f.read(end-start)
where = data.index(b"\x66"*16)