如何将 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()
我正在尝试将一个字节写入 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()