struct.unpack 与 bytearray 的

Wea*_*Fox 2 python bytearray unpack python-2.7

我编写了一个用于struct.unpack字节数组的应用程序。使用 python 2.7.5 在我的机器上运行它,效果很好:

>>> data
bytearray(b'\x07\x00\x00\x00\x00\x00\x00\x00')
>>> struct.unpack("<Q", data)   
(7,)
Run Code Online (Sandbox Code Playgroud)

但是,我尝试将它与 python 版本 2.7.3 一起使用,但出现异常:

错误:解包需要长度为 8 的字符串参数

我需要在解包之前将字节数组显式转换为字符串。这与python版本更改有关吗?该结构手册只字未提这个..我想避免这样做所有的铸造,是有解决什么办法?

Ale*_*voy 5

此外,您可以用字节包装 bytearray 对象:

>>> data
bytearray(b'\x07\x00\x00\x00\x00\x00\x00\x00')
>>> struct.unpack("<Q", bytes(data))   
(7,)
Run Code Online (Sandbox Code Playgroud)

它也适用于 Python3。