我正在尝试使用格式化字符串将bytearray“解包”(使用Python的struct模块)为多个变量:
(a, b, c, d, e, f, g, h) = unpack('HHHHHBBL', my_byte_array)
当我阅读docs时,我期望:
当我在我的windows10机器上运行这个程序时,这正是我得到的。你知道吗
在我另外两台安装了Mac OS X和Manjaro Linux的机器上(这三台机器都安装了Python 3.7),我会得到一个错误:
struct.error: unpack requires a buffer of 24 bytes
当我运行以下命令时,三台机器上的输出都是相同的
>>> from struct import *
>>> calcsize('H')
2
>>> calcsize('B')
1
>>> calcsize('L')
8
但当我运行以下命令时:
>>> calcsize('HHHHHBBL')
我的Windows机器上的输出是16,但在其他两个系统上是24。我觉得很奇怪,这是怎么回事?你知道吗
我应该如何使用结构解包在多平台环境中?你知道吗
感谢@jasonharper:
相关问题 更多 >
编程相关推荐