如何在Python中将单个十六进制值写入文件?

时间:2015-12-18 00:46:56

标签: python file-io hex

我正在尝试写一个单十六进制值,对文件说“F”:

a = int('F', 16)
f.write(chr(a))

但是,此代码段为我提供了0F的文件。我只想在我的文件中使用单个十六进制F。我知道这是因为一个字符由一个字节表示,有没有办法直接写入没有填充的十六进制值?

3 个答案:

答案 0 :(得分:2)

使用string formatting

 f.write("{:X}".format(a))

它会将其写为F

 >>> "{:X}".format(a)
 'F'

答案 1 :(得分:1)

您可以使用struct模块将原始数据写入文件。这会将单个字节写入文件

open('file','wb').write(struct.pack('b', 0xf))

答案 2 :(得分:1)

在大多数现代操作系统上,您无法尝试做的事情。通用计算平台可以处理的最小数据单元是一个字节。

检查此wiki article以获取其中的其他详细信息: "历史上,字节是用于在计算机中编码单个文本字符的位数,因此它是许多计算机体系结构中最小的可寻址存储单元。 "