如何在python中将整数列表写入二进制文件

时间:2013-10-02 16:56:25

标签: python performance file list

我有一个表示代码字节的整数列表。如何快速,高效地将它们写入二进制文件。

我试过了:

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分钟)。

1 个答案:

答案 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,并使用相同的输入;毕竟,你不会在创建后改变这些值。