在Python 3.3中,我需要将一个整数转换为三个字节的中间位,以通过串行连接发送它。
也就是说,我需要有一个值b'\x4c\x00\x46'
,除了\ x00字节需要取整数变量的单字节值,该变量可能在0到255之间变化。我认为是chr (值)可以工作,但是它给出一个字符串而不是一个字节。
例如,如果值为255,我想获得b'\x4c\xff\x46'
。
答案 0 :(得分:3)
使用bytearray
:
>>> b'\x4c\x00\x46'
b'L\x00F'
>>> a = bytearray(b'\x4c\x00\x46')
>>> a[1] = 255
>>> a
bytearray(b'L\xffF')
>>> bytes(a)
b'L\xffF'
您也可以使用list
代替bytearray
。但是使用list
在Python 2.x中不起作用。