Python解压缩问题

时间:2011-03-11 15:40:43

标签: python

我有:

a, b, c, d, e, f[50], g = unpack('BBBBH50cH', data)

问题是

f[50] (too many values to unpack)

我如何做我想做的事?

2 个答案:

答案 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个字符的列表,这是我怀疑你想要的。