3

我需要将一个整数转换为一系列字节字符串,这看起来struct.pack是最好的方法。一行得到我需要的所有信息:

In [51]: struct.pack("@L",1000)
Out[51]: '\xe8\x03\x00\x00'

我的问题是我最终想将它们转换为字符串列表(我通过 CAN 实用程序传递它们,该实用程序需要将字节视为字符串......最终我将绕过该实用程序,但这是我现在在)

所以我尝试访问该字符串,但它是一种不同类型的字符串......

In [52]: output=struct.pack("@L",1000)

In [53]: type(output)
Out[53]: str

In [54]: output[0]
Out[54]: '\xe8'

In [55]: type(output[0])
Out[55]: str

In [56]: output[0][0]
Out[56]: '\xe8'

所以不太确定从这里去哪里。最终,我想得到类似的东西

(0xe8, 0x03,0x00,0x00)
4

1 回答 1

1

听起来您想要一个字节值列表作为整数。以下是您可以执行的操作:

>>> import struct
>>> x = struct.pack("@L",1000)
>>> map(ord, x)
[232, 3, 0, 0]

如果你真的想要十六进制字符串:

>>> map(hex, map(ord, x))
['0xe8', '0x3', '0x0', '0x0']
于 2013-04-07T23:34:54.847 回答