python将bytearray转换为lis中的数字

2024-05-15 08:03:53 发布

您现在位置:Python中文网/ 问答频道 /正文

对于以下python代码:

pt  = bytearray.fromhex('32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34')
state = bytearray(pt)

如果我使用:

print state

它发出2Cö¨ˆZ0?11˜¢à74

那么如何恢复bytearray中的内容呢?例如,将它们放入一个类似[]的列表中。


Tags: 代码pta2内容列表stateprinta8
3条回答

可以使用python在bytearray和list之间进行转换 具有相同名称的内置函数。

>>> x=[0,1,2,3,4]      # create a list 
>>> print x
[0, 1, 2, 3, 4]
>>> y = bytearray(x)   # convert the list to a bytearray    
>>> print y
(garbled binary)               <-- prints UGLY!
>>> z = list(y)        # convert the bytearray back into a list
>>> print z
[0, 1, 2, 3, 4]        

索引bytearray将导致无符号字节。

>>> pt[0]
50
>>> pt[5]
90

您可以使用简单的字符串方法创建自己的方法:

string = '32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34'
number = [int(i, 16) for i in string.split()]

现在你有了一个你想要的转换后的数字列表。

相关问题 更多 >