如何在Python中从整数创建字节值?

时间:2012-03-10 09:02:15

标签: python serial-port arduino pyserial

背景:我需要将一个数值作为字节发送到外部设备,但我遇到了一个问题。 我的代码是:

ser=serial.Serial("COM3",9600, timeout=0)
ser.write(value)

其中“value”是我读过的int读过的。问题是,当我发送它时,它发送字符值,而不是实际值(它发送数字5的字节值31,因为这是它的unicode位置,我相信)

实际上,我希望能够以“\ x05”字符发送它。我想我的问题是,我将如何将int 5转换为char“\ x05”,或将37转换为“\ x37”

2 个答案:

答案 0 :(得分:8)

使用内置函数chr()

如果您有需要发送的此类整数列表,可以考虑使用bytearray()

或者,在较新版本的Python中,您只需使用byte类型。

答案 1 :(得分:4)

你可以用这个..

bytes(chr(my_int))    # not strictly correct unless 0<=my_int<=255
bytes((my_int,))