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

xia*_*012 6 python binary

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

01010101
Run Code Online (Sandbox Code Playgroud)

如何将其转换为实际二进制值并将其写入二进制文件?

小智 9

使用int功能具有base2读取二进制值作为一个整数.

n = int('01010101', 2)
Run Code Online (Sandbox Code Playgroud)

Python 2使用字符串来处理二进制数据,因此您可以使用chr()函数将整数转换为单字节字符串.

data = chr(n)
Run Code Online (Sandbox Code Playgroud)

Python 3以不同方式处理二进制和文本,因此您需要使用bytes类型.这与chr()函数没有直接等价,但bytes构造函数可以获取字节值列表.我们放入n一个单元素数组并将其转换为bytes对象.

data = bytes([n])
Run Code Online (Sandbox Code Playgroud)

获得二进制字符串后,可以以二进制模式打开文件并将数据写入其中,如下所示:

with open('out.bin', 'wb') as f:
    f.write(data)
Run Code Online (Sandbox Code Playgroud)

  • 对于 python 2.6+,你可能最好使用 `bytearray([n])`。[参见文档](http://docs.python.org/2/library/functions.html#bytearray)。 (2认同)