如何使用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()
答案 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。