2013-04-24 77 views
1

如何使用Python編寫雙精度文件二進制文件?我目前在做以下,但它給我的單精度文件:使用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() 

回答

5

使用d寫雙精度浮點數:

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

f只有精度。參見struct模塊文檔的Format characters部分:

對於'f''d'轉換碼,填充表示使用IEEE 754 binary32(對於'f')或binary64(爲'd')格式,而不管浮點該平臺使用的格式。

3

您錯誤地使用了格式字符串。要使用雙精度,請使用'd'而不是'f'。有關格式字符的列表,請參見documentation