将二进制字符串转换回二进制(python 3+)

时间:2017-03-16 18:42:56

标签: python string python-3.x binary

我有一个像这样的字符串:

initial = b"data|22|b'or ac mattis blandit, elit mi ullamcorper tellus, id eleifend enim augue in ipsum.'|1358186458"

并获取其内容:

first, second, third, fourth = initial.decode().split('|')

third变量的类型为string()但我想将其转换回二进制而不重新包装它。

第三个变量内容是:

"b'or ac mattis blandit, elit mi ullamcorper tellus, id eleifend enim augue in ipsum.'"

请注意,third的类型仍为字符串,但我想将其恢复为二进制!

1 个答案:

答案 0 :(得分:0)

而不是decode然后encode,而是使用bytes等效的.split,它需要一个字节字符串作为分隔符传递:

first, second, third, fourth = initial.split(b'|')

现在third正在:

>>> print(third)
b"b'or ac mattis blandit, elit mi ullamcorper tellus, id eleifend enim augue in ipsum.'"

如果您不需要二进制字符串中的b'',请将其修剪掉:

>>> third[2:-1]
b'or ac mattis blandit, elit mi ullamcorper tellus, id eleifend enim augue in ipsum.'