在python中交换十六进制字节数组中的字节对

在python中交换十六进制字节数组中的字节对,python,arrays,Python,Arrays,道歉如果以前有人问过,我在谷歌上找不到我需要做的事情。 我已经在python中将一个十六进制字符串转换为一个字节数组,并且我想交换字节对。例如,0e d8 AB CD应为d8 0e CD AB。我曾尝试使用byteswap,但似乎不起作用。 这是我获取bytearray的代码 #forward RPM if dirVar.get() == ("Forwards"): hexRpm =(hex(RPM.get())) forwardRpmF

道歉如果以前有人问过,我在谷歌上找不到我需要做的事情。 我已经在python中将一个十六进制字符串转换为一个字节数组,并且我想交换字节对。例如,0e d8 AB CD应为d8 0e CD AB。我曾尝试使用byteswap,但似乎不起作用。 这是我获取bytearray的代码

#forward RPM         
    if dirVar.get() == ("Forwards"):
        hexRpm =(hex(RPM.get()))
        forwardRpmFinal = bytearray.fromhex((padhexa(hexRpm)))
padehexa
只是一个函数,我用它在十六进制字节的前面加上零,这样
bytearray
在遇到单个字母或数字时不会抛出错误


提前谢谢

如果您希望实现两个系统之间的endiannes转换,我建议您查看struct包

举个小例子:

>>> import struct
>>> var = struct.pack('<h', 5)
>>> var
>>> var = struct.pack('>h', 5)
>>> var
>>> var = struct.pack('<HH', int("d80e", 16), int("cdab", 16))
>>> var
>>> var = struct.pack('>HH', int("d80e", 16), int("cdab", 16))
>>> var
导入结构 >>>var=struct.pack('h',5) >>>变量 对于您的数据,示例如下:

>>> import struct
>>> var = struct.pack('<h', 5)
>>> var
>>> var = struct.pack('>h', 5)
>>> var
>>> var = struct.pack('<HH', int("d80e", 16), int("cdab", 16))
>>> var
>>> var = struct.pack('>HH', int("d80e", 16), int("cdab", 16))
>>> var
var=struct.pack('HH',int(“d80e”,16),int(“cdab”,16)) >>>变量
希望这能有所帮助。

如果您希望实现两个系统之间的endiannes转换,我建议您查看struct包

举个小例子:

>>> import struct
>>> var = struct.pack('<h', 5)
>>> var
>>> var = struct.pack('>h', 5)
>>> var
>>> var = struct.pack('<HH', int("d80e", 16), int("cdab", 16))
>>> var
>>> var = struct.pack('>HH', int("d80e", 16), int("cdab", 16))
>>> var
导入结构 >>>var=struct.pack('h',5) >>>变量 对于您的数据,示例如下:

>>> import struct
>>> var = struct.pack('<h', 5)
>>> var
>>> var = struct.pack('>h', 5)
>>> var
>>> var = struct.pack('<HH', int("d80e", 16), int("cdab", 16))
>>> var
>>> var = struct.pack('>HH', int("d80e", 16), int("cdab", 16))
>>> var
var=struct.pack('HH',int(“d80e”,16),int(“cdab”,16)) >>>变量
希望这有帮助。

您确定字节数组中只有4个数字吗?或者你想交换序列中的每一对?理想情况下,我想交换序列中的每一对,因为我最终会有多个不同长度的数组,我想对所有数组都做相同的操作。你想实现endianness转换吗?是的,抱歉,应该更具体一点@Zanseb你确定字节数组中只有4个数字吗?或者你想交换序列中的每一对?理想情况下,我想交换序列中的每一对,因为我最终会有多个不同长度的数组,我想对所有数组都做相同的操作。你想实现端度转换吗?是的,对不起,应该更具体一点@zanseb