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

问题描述 投票:2回答:2

我已经尝试过在python中只向一个文件写一个字节的所有内容。

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

将输出'0x00 0x0a'

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

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

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

python filehandle writing
2个回答
8
投票

你可以用这个值构建一个bytes对象:

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

这只适用于python3。如果用bytes替换bytearray,它在python2和3中都有效。

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


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))
© www.soinside.com 2019 - 2024. All rights reserved.