从Python中的struct中删除前导零

时间:2014-10-28 02:18:10

标签: python

我正在使用Python通过Beagle Bone进行串行通信。我需要以十六进制格式传输数据。所以我用struct这样:

import Adafruit_BBIO.UART as UART
import serial
import struct

UART.setup("UART1")

ser = serial.Serial(port='/dev/ttyO1', baudrate = 19200)
print ser.portstr
ser.open()

tx_hex = 0x1234
tx_str = struct.pack('!I', tx_hex)

if ser.isOpen():
    print "Serial is open!"
    ser.write(tx_str)
else:
    print "Serial is closed!"
ser.close()

但是,我收到00 00 12 34(十六进制),而我希望它只是12 34。我如何摆脱领先的零?

1 个答案:

答案 0 :(得分:1)

struct使用不同的格式:

tx_str = struct.pack('!H', tx_hex)

另见https://docs.python.org/2/library/struct.html#format-characters