You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何读取Little Endian(小端)格式二进制文件内容到变量

问题原因

你原来的读取代码把调用顺序写反了:struct.unpack() 需要接收从文件读取到的二进制字节作为入参,而不是作为 fp.read() 的参数传入。

修正后的代码

import struct 

# 写入逻辑和原代码一致
with open("test-09.bin", "wb") as fp:
    fp.write(struct.pack("<4d", 3.14159, 42.0, 123.456, 987.654))

# 修正后的读取逻辑
with open("test-09.bin", "rb") as fp:
    # 先读取二进制内容,再传入unpack解析
    bin_content = fp.read()
    float_list = struct.unpack("<4d", bin_content)

# 验证输出:结果为 (3.14159, 42.0, 123.456, 987.654)
print(float_list)

补充说明

  • 格式符 <4d 对应4个小端双精度浮点数,每个浮点数占8字节,总长度为32字节。如果你的二进制文件可能存在多余后缀内容,可以改为精确读取固定长度避免报错:bin_content = fp.read(4 * 8)
  • struct.unpack 固定返回元组类型,如果你需要把四个数值单独赋值给变量,可以写成 num1, num2, num3, num4 = struct.unpack("<4d", bin_content)

内容的提问来源于stack exchange,提问作者KateMac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:09:03