python 中的字符串到单字节

string to single byte in python

我有一个 python 字符串,如下所示:

byte_string = "01100110"

我想像这样把它变成一个字节:

byte_byte = some_function(byte_string) # byte_byte = 0b01100110

我怎样才能做到这一点?

经过进一步的思考,我认为我最初误解了你的意图,这反映在我下面的“先前答案”中。

我认为 this prior SO question 也可以解决您的问题,因为听起来您想将 8 位字符串转换为单个字节。 而且,正如@Mark Ransom 所指出的,它看起来像十进制代码:

int(byte_string, 2)
output: 102

或者像这样作为对应的ascii字符:

chr(int(byte_string, 2))
output: 'f'

----基于将字符串编码为字节数组的假设的先前答案------

您可以像这样将字符串编码为字节,如果需要,可以选择传递特定编码:

byte_string = "01100110"
byte_string.encode("utf-8")

bytes(byte_string, 'utf-8')

结果:

b'01100110'

Link to python docs for encoding / decoding strings.

另一种选择是创建字节数组:

bytearray(byte_string, 'utf-8')
output: bytearray(b'01100110')

还有另一个 可能也有帮助,它描述了字节和字节数组对象在与字符串相互转换中的用途方面的区别。

您似乎想将该字符串转换为单个数字。为此,您只需转换为基数为 2.

int
byte_byte = int(byte_string, 2)