当我尝试从二进制文件中解压 float 时,我收到了上面的错误,它要求我提供长度为 4 的字符串。我的代码在 Mac 上运行得非常好,但在 Windows 上却表现不佳。代码如下:
for i in range (0,elec_array.nb_chan):
elec_array.chan[i].x = struct.unpack('f',f.read(4))[0]
elec_array.chan[i].y = struct.unpack('f',f.read(4))[0]
问题出现在 elec_array.chan[i].x
行。但它不会立即发生,它会先在循环中进行几次迭代,然后最终给出需要长度为 4 的字符串的错误。同样,该代码在 Mac 上运行得非常好,但由于某种原因在我的 Windows 7 PC 上停止运行。任何帮助将不胜感激!
最佳答案
您可能忘记以二进制模式打开文件。在文本模式下,0x0d
0x0a
序列会缩短为 0x0a
,并且您的文件大小将错误。
关于python - 解包需要长度为 : Windows Issue? 的字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13124030/