我正在使用一些可以通过十六进制命令控制的硬件。我已经有一些Python代码片段用于其他使用ASCII命令的设备的telnet控制。发送十六进制数据
我该如何去发送十六进制命令?例如,我将如何修改skt.send('some ascii command\r')
十六进制值,以及用于存储这些值的最佳数据类型是什么?
谢谢。
我正在使用一些可以通过十六进制命令控制的硬件。我已经有一些Python代码片段用于其他使用ASCII命令的设备的telnet控制。发送十六进制数据
我该如何去发送十六进制命令?例如,我将如何修改skt.send('some ascii command\r')
十六进制值,以及用于存储这些值的最佳数据类型是什么?
谢谢。
在Python 2,使用字符串文字:
skt.send('\x12\r')
在Python 3,使用字节的文字或bytes.fromhex
:
skt.send(b'\x12\r')
skt.send(bytes.fromhex('12 0d'))
在任一情况下,bytearray
类型将可能,因为它是非常有用一种可以用整数和字节文字构造的可变(可修改)类型:
skt.send(bytearray([0x02, 0x03, 0x00, 0x00, 0x05]))
在Python 3下,你也有很棒的bytes.fromhex()
函数。
>>> bytes.fromhex('AA 11 FE')
b'\xaa\x11\xfe'
>>> bytes.fromhex('AA11FE')
b'\xaa\x11\xfe'
您是使用Python 2.x还是Python 3? – 2012-08-08 13:24:23
我正在使用python3 – inbinder 2012-08-08 13:27:42