80 ab:字节反向ABCD到CDAB与 python

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

我知道有一个简单的方法来做到这一点,但我是初学者,只是学习 python,并试图做一些简单的程序来帮助我完成我的日常任务。

我将在开始偏移 0x000000 和块大小 / 长度为 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()

你可以看到模块反转,我已经尝试了许多不同的建议,它将通过 untouched 传递文件,或者它会抛出错误。我知道模块反转现在是空的,但是我已经尝试了各种各样的东西。我只需要模块反向将 AB CD 转换为 CD AB。谢谢任何输入

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

17

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

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

结果是

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

在 Python 2 中,二进制文件被读取为字符串,所以字符串切片应该很容易处理相邻字节的交换:

>>> original = '\xAD\xDE\xDE\xC0'
>>> ''.join([c for t in zip(original[1::2], original[::2]) for c in t])
'\xde\xad\xc0\xde'

在 Python 3 中,二进制文件被读取为字节。只需要一个小的修改来构建另一个字节数组:

>>> original = b'\xAD\xDE\xDE\xC0'
>>> bytes([c for t in zip(original[1::2], original[::2]) for c in t])
b'\xde\xad\xc0\xde'

您还可以在struct module中使用<>endianess格式代码来实现相同的结果:

>>> struct.pack('<2h', *struct.unpack('>2h', original))
'\xde\xad\xc0\xde'

快乐byte swapping:-)

13
data = b'\xAD\xDE\xDE\xC0'
reversed_data = data[::-1]
print(reversed_data)
# b'\xc0\xde\xde\xad'
1

Python3

bytes(reversed(b'\xAD\xDE\xDE\xC0'))
# b'\xc0\xde\xde\xad'

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(561)
A1ͼֽ:这是一个数组公式 IF(ISNUMBER(A1:A100) A1:A100“”)
上一篇
C is pr 32:Nodetool修复-pr-fullvsNodetool修复-pr
下一篇

相关推荐

  • vscode python 插件:使用 VSCode Python 插件开发 Python 应用

    VSCode Python插件是一个用于在Visual Studio Code中编写Python代码的插件。它提供了语法高亮、自动补全、代码检查、调试和诊断等功能,可以帮助开发者更快地编写Python代码。…

    2023-02-02 04:07:31
    0 91 88
  • python unstack()函数:使用unstack()函数实现复杂分组

    Python unstack()函数是pandas库中的一个函数,可以将pandas的DataFrame中的某一列转换成行。它的语法如下:…

    2023-03-05 04:38:31
    0 40 82
  • python语法基础知识 # 猴子吃桃 num_peaches = (num_peaches + 1) * 2# 输

    Python语法基础知识是指掌握Python编程的基本语法,包括变量、数据类型、运算符、流程控制、函数、类、模块等。下面是一些常用的Python语法示例:…

    2023-02-05 06:09:38
    0 65 92
  • python与c语言哪个好学:如何选择Python或C语言?

    Python和C语言都是流行的编程语言,它们都有自己的优势和特点。Python比C语言更容易学习,因为它的语法更简单,而且可以使用面向对象的编程思想,这使得它更容易理解和使用。此外,Python提供了大量的内置函数和模块,可以帮助开发者更快地完成任务。…

    2023-01-25 11:05:51
    0 96 59
  • 麦迪在cba首秀全场录像:在python中模拟nba选秀彩票

    关于麦迪在cba首秀全场录像的问题,在nba lottery sim中经常遇到,我正在尝试编写一个模拟彩票模拟器,作为一个思想练习和一些介绍性的 python 练习,其中每个团队将有 2 倍的几率获得第一个选择,因为他们之前的团队在积分榜上。…

    2022-11-23 08:30:02
    0 84 51
  • 求一款魔方cfop软件:python中的虚拟助手与语音激活

    关于求一款魔方cfop软件的问题,在u.go/virtualassistant中经常遇到,所以我在 python 中制作了一个虚拟助手,当你通过它的名字调用它时,系统被激活,然后你可以根据你所说的工作,但它显示了一个错误的缩进,即使这里没有任何错误的代码…

    2022-11-23 08:27:04
    0 70 88
  • python 时间操作:如何利用Python时间操作提高工作效率

    Python 时间操作是指使用 Python 语言来处理时间的操作。Python 中的时间操作主要由 datetime 库提供支持,它提供了一系列函数和类来处理时间。…

    2023-03-06 07:45:55
    0 85 56
  • python程序包:如何使用Python程序包构建高效的应用程序

    Python程序包是一种用于组织Python模块的形式,它允许程序员将相关的模块组合在一起,以便更轻松地管理和使用它们。Python程序包可以包含函数、类、变量和其他Python代码,以帮助简化程序的开发。…

    2023-01-12 00:42:48
    0 51 34

发表评论

登录 后才能评论

评论列表(11条)