我需要将整数转换为一系列字节字符串,看起来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)
答案 0 :(得分:1)
听起来你想要一个字节值列表作为整数。这是你可以做的:
>>> import struct
>>> x = struct.pack("@L",1000)
>>> map(ord, x)
[232, 3, 0, 0]
如果你真的想要十六进制字符串:
>>> map(hex, map(ord, x))
['0xe8', '0x3', '0x0', '0x0']