将字节的二进制字符串表示转换为Python中的实际二进制值

8 投票
1 回答
18220 浏览
提问于 2025-04-17 00:26

我有一个字节的二进制字符串表示,比如说:

01010101

我该怎么把它转换成真正的二进制值,并写入一个二进制文件呢?

1 个回答

12

使用这个int函数,把base设置为2,就可以把二进制值当作整数来读取。

n = int('01010101', 2)

在Python 2中,处理二进制数据时用的是字符串,所以你需要用这个chr()函数把整数转换成一个字节的字符串。

data = chr(n)

而在Python 3中,二进制和文本的处理方式不同,所以你需要使用这个bytes类型。它没有直接对应的chr()函数,但bytes构造函数可以接受一个字节值的列表。我们把n放在一个只有一个元素的数组里,然后把它转换成bytes对象。

data = bytes([n])

一旦你有了二进制字符串,就可以以二进制模式打开一个文件,然后像这样把数据写入其中:

with open('out.bin', 'wb') as f:
    f.write(data)

撰写回答