我有:
a, b, c, d, e, f[50], g = unpack('BBBBH50cH', data)
问题是
f[50] (too many values to unpack)
我如何做我想做的事?
答案 0 :(得分:7)
我认为f[50]
您试图表示“50个元素的列表”?
在Python 3.x中,您可以a, b, c, d, e, *f, g
表示您希望f
包含所有其他不适合的值(请参阅this PEP)。
在Python 2.x中,您需要明确地写出来:
x = unpack(...)
a, b, c, d, e = x[:5]
f = x[5:55]
<etc>
答案 1 :(得分:0)
问题出在解包的50c
部分。这是从缓冲区读取50个字符,并将其作为50个单独的值返回。如果将其更改为
a, b, c, d, e, f, g = unpack('BBBBH50sH', data)
f
将是从缓冲区读取的50个字符的列表,这是我怀疑你想要的。