0

我有一个.bin文件,我想简单地对十六进制数据进行字节反转。比如说@ 0x10它读AD DE DE C0,要它读DE AD C0 DE

我知道有一种简单的方法可以做到这一点,但我是初学者,刚刚学习 python,正在尝试制作一些简单的程序来帮助我完成日常任务。我想以这种方式转换整个文件,而不仅仅是0x10.

我将在开始偏移处进行转换,0x000000块大小/长度为 1000000。

编辑:

这是我的代码,也许你可以告诉我我在哪里搞砸了。

def main():
    infile = open("file.bin", "rb")
    new_pos = int("0x000000", 16)
    chunk = int("1000000", 16)
    data = infile.read(chunk)
    save(data)

def save(data):
    with open("reversed", "wb") as outfile:
        outfile.write(data)

main()

我将如何将其编码为从 CDAB 到 ABCD 的字节反转?如果有帮助,文件正好是 16MB

4

1 回答 1

0

您可以像这样手动交换字节:

with open("file.bin", "rb") as infile, open("reversed", "wb") as outfile:
  data = infile.read()
  for i in xrange(len(data) / 2):
    outfile.write(data[i*2+1])
    outfile.write(data[i*2])
于 2013-01-26T18:49:44.723 回答