将字节的二进制字符串表示转换为Python中的实际二进制值
我有一个字节的二进制字符串表示,比如说:
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)