Python如何将32bit binary float以二进制格式写入open打开的文件
Python 32位单精度浮点数二进制写入实现方法
核心依赖
使用Python标准库内置的struct模块即可实现,无需安装第三方依赖,该模块专门用于处理Python数值和C语言类型二进制数据的互相转换。
实现步骤
- 打开文件时必须使用二进制写模式,即模式参数传
wb,禁止使用普通文本写模式w,否则会出现二进制数据转义错误。 - 调用
struct.pack()方法将Python float类型转换为32位单精度浮点数对应的二进制字节串,格式符使用f对应32位float类型。
代码示例
import struct # 单浮点数写入示例 with open("float_data.bin", "wb") as f: # 将3.14转换为32位浮点数二进制字节串写入 bin_bytes = struct.pack("f", 3.14) f.write(bin_bytes) # 批量浮点数写入示例 float_array = [0.5, 1.2, -3.7, 99.9] with open("float_batch.bin", "wb") as f: # 格式符前的数字对应要转换的浮点数个数 batch_bin = struct.pack(f"{len(float_array)}f", *float_array) f.write(batch_bin)
可选配置:指定字节序
默认使用运行设备的原生字节序,如果需要手动指定大端/小端字节序,可在格式符前增加标记:
<f:小端字节序(Little-endian)32位浮点数>f:大端字节序(Big-endian,网络字节序)32位浮点数=f:使用当前设备原生字节序(默认值)
内容的提问来源于stack exchange,提问作者crow
相关产品推荐
相关产品推荐

