我正在尝试使用struct.pack,以便可以将字符串写入文件。当我这样做时,出现以下错误:

File "----", line 166, in main
struct.pack('>256s', *master_header)
struct.error: pack expected 1 items for packing (got 256)


现在,从here读取,我似乎正在正确使用它。我指定在字符串中得到256个字节/字符。

我正在使用3.3.3版本。

最佳答案

documentation说:


  对于“ s”格式字符,计数被解释为
  字符串,而不是其他格式字符的重复计数;
  例如,“ 10s”表示单个10字节字符串,而“ 10c”表示10
  字符。


因此,>256s期望单个字符串的长度为256个字节。如果master_header已经是这样的字符串,只需将其传递给struct.pack而不使用*

在呼叫站点使用*会导致字符串本身被解包为其组成字符,字符串是可迭代的。结果,struct.pack接收其256个单独的字符作为参数,从而导致观察到的错误。

关于python - 对字符串使用struct.pack,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21726324/

10-12 22:12
查看更多