在python中写比特(从一个比特字符串)来创建一个二进制文件。

问题描述 投票:0回答:1

我是python的新手。以下是我正在努力实现的内容。我有一个很长的比特串 "1010101010101111101010111100001101010101011......".我想把它写成比特,然后用python创建一个二进制文件。".我想把这个写成比特,然后用python创建一个二进制文件(后来我想用IDA来反汇编这个,这个对这个问题不重要)。

有什么方法可以让我写成比特级的文件(二进制)?还是要先把它转换成字节,然后再一个字节一个字节的写?最好的方法是什么。

python binary-data bitstring
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.