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

How to write 1 byte to a binary file?

我正在尝试将一个字节写入 Python 中的文件。

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

将输出'0x00 0x0a'

fh.write( struct.pack('i', i) )

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

我想将值为 10 的单个字节写入文件。

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

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

这仅适用于 python3。如果将 bytes 替换为 bytearray,它在 python2 和 3.

中都有效

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

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))
i=10
f=open('binfile', 'w', encoding='utf-8')
f.write(chr(i))
f.close()