python - 解包需要长度为 : Windows Issue? 的字符串参数

标签 python struct unpack

当我尝试从二进制文件中解压 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/

相关文章:

python - 无法使用 Python 和 Selenium 登录 facebook。 send_keys() 没有做任何事情

perl - 加速 HyperLogLog 算法的实现

python - 如何抑制/忽略(/修复)matplotlib Axes3D ValueError?

python - 如何在不使用 gdata oauth2 工作流程的情况下授权 gdata 客户端?

c - 为什么我们不能对新创建的结构体指针使用点

c++ - 为结构变量动态赋值

matlab - Octave 的矢量解包

php - 使用 PHP 将大 zip 部分解压到文件夹中

python - 我可以将 ati opencl 与混合显卡一起使用吗 (intel/ati)

c - 如何跨多个翻译单元共享不透明类型?