2012-07-31 23 views
0

因此,我得到一個浮點值:-1.0f,或者其他東西。我怎麼能把它寫入Python中的十六進制格式的文件?我的意思是我們在記事本中打開文件,我們不會看到十六進制值,只是ASCII碼。在Python中將變量寫入十六進制文件

+1

什麼是所期望的輸出?十六進制還是非十六進制一些例子? – Tisho 2012-07-31 15:54:54

+0

查看'struct.pack'和內置的'ord'和'hex'功能。按順序使用它們。 – wberry 2012-07-31 15:57:52

+2

['float.hex()'](http://docs.python.org/library/stdtypes.html#float.hex)也可能有用。 – 2012-07-31 15:59:08

回答

0

在Python 3:

>>> import struct 
>>> "".join("{0:02X}".format(b) for b in struct.pack(">f", -1.0)) 
'BF800000' 

在Python 2:

>>> import struct 
>>> "".join("{0:02X}".format(ord(b)) for b in struct.pack(">f", -1.0)) 
'BF800000' 
+0

使用此命令可以將十六進制數據寫入文件嗎? – 2012-08-01 07:00:14

+0

什麼是「b」?並且「> f」是否意味着文件名? – 2012-08-01 07:02:54

+0

現在,我不需要更多的答案,我已經解決了這個問題。 – 2012-08-01 13:07:45

相關問題