我有一个表示代码字节的整数列表。如何快速,高效地将它们写入二进制文件。
我试过了:
with open (output1, "wb") as compdata:
for row in range(height):
for data in cobs(delta_rows[row].getByte_List()):
output_stream.append(Bits(uint=data, length=8))
compdata.write(output_stream.tobytes())
和
with open (output1, "wb") as compdata:
for row in range(height):
bytelist = cobs(delta_rows[row].getByte_List())
for byte in bytelist:
compdata.write(chr(byte))
两个都得到了一个我认为正确的结果(我还没有改变过程),但两者都需要很长时间(分钟6分钟和4分钟)。
答案 0 :(得分:8)
使用bytearray()
object,将其直接写入输出文件:
with open (output1, "wb") as compdata:
for row in range(height):
bytes = bytearray(cobs(delta_rows[row].getByte_List()))
compdata.write(bytes)
整数序列由bytearray()
解释为字节值序列。
在Python 3中,您也可以使用bytes()
type,并使用相同的输入;毕竟,你不会在创建后改变这些值。