我已经尝试过在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))