用Python导出4字节浮点

2024-04-26 19:07:58 发布

您现在位置:Python中文网/ 问答频道 /正文

< P>我想把Python脚本的浮点数字导出到二进制文件中,并用C++程序读取二进制文件,并将字节解释为浮动。(在x86/IEEE754机器上。没有转换。只需从文件中读取数据并将其称为浮点数组。)

如果我理解正确的话,Python使用的float与C中的double相同,所以是8字节。有没有办法让这一切顺利?从Python导出4字节浮点,这将是与C++中4字节浮点相同的表示形式吗?你知道吗


Tags: 文件程序脚本机器字节二进制数字数组
2条回答

struct模块处理这个问题。你知道吗

>>> import struct
>>> struct.pack("f", 3.14)  # 4-byte float
b'\xc3\xf5H@'
>>> struct.pack("g", 3.14)  # 8-byte double
b'\x1f\x85\xebQ\xb8\x1e\t@'

有关如何控制结果的结束性的更多信息,请参见文档。你知道吗

arrayPython模块允许您一次性转储浮点数组:

import array
def dump_numbers(filename, numbers):
    with open(filename, 'wb') as fp:
        array.array('f', numbers).tofile(fp)

相关问题 更多 >