357

例如,我有一个这样的字符串(返回值subprocess.check_output):

>>> b'a string'
b'a string'

无论我对它做了什么,它总是b'在字符串之前打印出令人讨厌的内容:

>>> print(b'a string')
b'a string'
>>> print(str(b'a string'))
b'a string'

有人对如何将其用作普通字符串或将其转换为普通字符串有任何想法吗?

4

3 回答 3

512

解码它。

>>> b'a string'.decode('ascii')
'a string'

要从字符串中获取字节,请对其进行编码。

>>> 'a string'.encode('ascii')
b'a string'
于 2013-07-12T12:55:43.717 回答
103

如果falsetru的答案不起作用,您也可以尝试:

>>> b'a string'.decode('utf-8')
'a string'
于 2016-03-11T19:30:05.777 回答
8

请参阅图书馆的官方encode()decode()文档。是函数的默认编码,但 Python 3 中有多种标准编码,例如或.codecsutf-8latin_1utf_32

于 2020-06-02T17:52:23.247 回答