2
想要創建一個STL file,我需要爲二進制IEEE浮點格式的文件寫一個REAL32值。我如何在Python中做到這一點?如何在Python中將REAL32值寫入文件?
想要創建一個STL file,我需要爲二進制IEEE浮點格式的文件寫一個REAL32值。我如何在Python中做到這一點?如何在Python中將REAL32值寫入文件?
你想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))
如何「通常」在此背景下浮動32位?我可以合理地期望這在大多數支持Python的系統上工作嗎? 64位操作系統? – devtk
@devtk - 我認爲這是一個很安全的假設。任何支持IEEE的系統都應該可以工作。如果系統不支持IEEE,那麼將數據寫入IEEE看起來非常可怕...... – mgilson
事實上,它至少在我問的Python 3.3中是有保證的。請參閱[格式字符表](http://docs.python.org/py3k/library/struct.html#format-characters)中的註釋(5)。 – delnan