gpt4 book ai didi

python - 字节反转 AB CD 到 CD AB 与 python

转载 作者:太空狗 更新时间:2023-10-29 22:03:42 28 4
gpt4 key购买 nike

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

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

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

这是我的代码,也许你可以告诉我该怎么做。我确定我只是不明白,而且我是编程和 python 的新手。如果您能帮助我,我将不胜感激。

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

def reverse(data):
output(data)

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

main()

您可以看到用于反转的模块,我已经尝试了很多不同的建议,它要么原封不动地通过文件,要么会抛出错误。我知道模块 reverse 现在是空的,但我已经尝试了各种方法。我只需要反向模块将 AB CD 转换为 CD AB。感谢您的任何输入

编辑:文件是 16 MB,我想反转整个文件的字节顺序。

最佳答案

在 Python 3.4 中你可以使用这个:

>>> data = b'\xAD\xDE\xDE\xC0'
>>> swap_data = bytearray(data)
>>> swap_data.reverse()

结果是

bytearray(b'\xc0\xde\xde\xad')

关于python - 字节反转 AB CD 到 CD AB 与 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14543065/

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