使用python编写双精度二进制文件

时间:2013-04-24 10:53:36

标签: python double-precision

如何使用Python编写双精度文件二进制文件?我现在正在做以下事情,但它给了我单精度文件:

#!/usr/bin/env python

import struct

data =[2.3715231753176,9.342983274982732]

output_file = "test.dat"
out_file = open(output_file,"wb")
s = struct.pack('f'*len(data), *data)
out_file.write(s)
out_file.close()

2 个答案:

答案 0 :(得分:5)

使用d编写双精度浮点数:

s = struct.pack('d'*len(data), *data)

f精度。请参阅struct模块文档的Format characters部分:

  

对于'f''d'转换代码,压缩表示使用IEEE 754二进制32(对于'f')或二进制64(对于'd')格式,而不管平台使用的浮点格式。

答案 1 :(得分:3)

你错误地使用了格式字符串。要使用双精度,请使用“d”代替“f”。有关格式字符列表,请参阅documentation