【问题标题】:Writing bits (from a bit string) to create a binary file in python写入位(从位字符串)以在 python 中创建二进制文件
【发布时间】:2020-05-20 17:54:43
【问题描述】:

我是 python 新手。这是我正在努力实施的。 我有一个很长的位串“1010101010101011111010101010111100001101010101011 ...”。 我想把它写成比特并使用python创建一个二进制文件。 (稍后我想用 IDA 反汇编它,这对于这个问题并不重要)。

有什么方法可以写入位级别的文件(作为二进制文件)?还是我必须先将其转换为字节,然后逐字节写入?什么是最好的方法。

【问题讨论】:

标签: python binary-data bitstring


【解决方案1】:

是的,您必须先将其转换为字节,然后将这些字节写入文件。按字节工作可能也是控制字节顺序(大端与小端)等的最佳方法。

您可以使用int("10101110", 2) 轻松地将位字符串转换为数值。然后使用bytearray 创建所有字节值的序列。结果将如下所示:

s = "1010101010101011111010101010111100001101010101011"
i = 0
buffer = bytearray()
while i < len(s):
    buffer.append( int(s[i:i+8], 2) )
    i += 8

# now write your buffer to a file
with open(my_file, 'bw') as f:
    f.write(buffer)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 2021-06-07
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    相关资源
    最近更新 更多