如何将1个字节写入二进制文件?

时间:2016-09-07 08:30:13

标签: python filehandle writing

我已经尝试过将一个字节写入python中的文件。

{
    path: '**',
    component: NotFoundComponent
}

将输出' 0x00 0x0a'

i = 10
fh.write( six.int2byte(i) )

将输出' 0x00 0x0a 0x00 0x00'

我想写一个值为10的单个字节到文件中。

2 个答案:

答案 0 :(得分:8)

您可以使用该值构建bytes对象:

with open('my_file', 'wb') as f:
    f.write(bytes([10]))

这仅适用于python3。如果将bytes替换为bytearray,则可以在python2和3中使用。

另外:记得以二进制模式打开文件以向其写入字节。

答案 1 :(得分:1)

struct.pack("=b",i)(已签名)和struct.pack("=B",i)(无符号)将整数打包为单个字节,您可以在docs for struct中看到。 ("="用于使用标准大小并忽略对齐 - 以防万一)所以你可以做到

import struct
i=10
with open('binfile', 'wb') as f:
    f.write(struct.pack("=B",i))