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

Python如何读取二进制文件中的4字节float并输出voxel浮点值列表

方法1:使用Python标准库struct(无需安装额外依赖)

struct是Python内置的二进制结构解析库,直接按格式解析字节流即可:

import struct

with open(filename, 'rb') as f:
    byte_data = f.read()

# 校验文件长度符合4字节float的对齐要求
if len(byte_data) %4 !=0:
    # 可根据需求选择截断非对齐的尾部字节,或者抛出异常
    byte_data = byte_data[:len(byte_data)//4 *4]

# 解析参数说明:格式符<f代表小端4字节单精度浮点数,若文件为大端存储则替换为>f
voxel_values = struct.unpack(f'<{len(byte_data)//4}f', byte_data)

# 遍历打印,按需输出避免IOPub数据超限,比如只打印前30个
for i, val in enumerate(voxel_values[:30]):
    print(f"第{i}个voxel值:{val}")

方法2:使用numpy(适合后续需要对voxel做数值计算、图像重构的场景)

numpy内置的二进制文件读取接口可以直接生成float数组,操作更简便:

import numpy as np

# dtype参数:<f4对应小端4字节float32,大端则改为>f4
voxel_arr = np.fromfile(filename, dtype='<f4')

# 转换为普通列表可选
voxel_list = voxel_arr.tolist()

# 按需打印前N个元素避免IOPub报错
print(voxel_arr[:30])

注意事项

  • 如果解析出的数值明显不符合预期(比如全为0、或者数值量级异常),优先切换字节序格式符测试
  • 不要直接打印全量元素,按需切片输出即可避免IOPub数据速率超限的报错,无需修改jupyter的全局配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:36:04