2012-10-09 19 views

回答

2

你想struct

with open(youroutput,'wb') as fout: 
    fout.write(struct.pack('<f',300.0)) 

這裏,<意味着小尾數和f代表float(32位,IEEE)。


如果你想在1點去寫多個值:

values = (300.0, 200.0, 100.0) 
fout.write(struct.pack('<3f',*values)) 
+0

如何「通常」在此背景下浮動32位?我可以合理地期望這在大多數支持Python的系統上工作嗎? 64位操作系統? – devtk

+0

@devtk - 我認爲這是一個很安全的假設。任何支持IEEE的系統都應該可以工作。如果系統不支持IEEE,那麼將數據寫入IEEE看起來非常可怕...... – mgilson

+1

事實上,它至少在我問的Python 3.3中是有保證的。請參閱[格式字符表](http://docs.python.org/py3k/library/struct.html#format-characters)中的註釋(5)。 – delnan

相關問題