如何在Python中将浮点列表输出到二进制文件

问题描述

亚历克斯绝对是对的,用这种方法做起来更有效:

from array import array
output_file = open('file', 'wb')
float_array = array('d', [3.14, 2.7, 0.0, -1.0, 1.1])
float_array.tofile(output_file)
output_file.close()

然后像这样读取数组:

input_file = open('file', 'rb')
float_array = array('d')
float_array.fromstring(input_file.read())

array.array``.fromfile如果您事先知道项目数(例如,从文件大小或其他某种机制),则对象还具有可用于读取文件方法

解决方法

我在Python中有一个浮点值列表:

floats = [3.14,2.7,0.0,-1.0,1.1]

我想使用IEEE 32位编码将这些值写到二进制文件中。用Python做到这一点的最佳方法是什么?我的列表实际上包含大约200
MB的数据,因此最好“不要太慢”。

由于有5个值,所以我只想要一个20字节的文件作为输出。