2012-07-31 163 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

相关问题