将字节转换为字符串?我使用这段代码从外部程序获得标准输出:>>> from subprocess import *>>> command_stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0]Communications()方法返回一个字节数组:>>> command_stdoutb'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2\n'但是,我希望将输出作为一个普通的Python字符串来处理。这样我就可以像这样打印出来:>>> print(command_stdout)-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2我以为这就是b2a_qp()方法,但当我尝试时,再次得到了相同的字节数组:>>> binascii.b2a_qp(command_stdout)b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2\n'有人知道如何将字节值转换回字符串吗?我是说,用“电池”而不是手工操作。我希望Python 3没有问题。
4 回答
POPMUISE
TA贡献1765条经验 获得超5个赞
您需要解码字节对象以生成字符串:
>>> b"abcde"
b'abcde'
# utf-8 is used here because it is a very common encoding, but you
# need to use the encoding your data is actually in.
>>> b"abcde".decode("utf-8")
'abcde'
慕工程0101907
TA贡献1887条经验 获得超5个赞
b'hello'.decode(encoding)
str(b'hello', encoding)
添加回答
举报
0/150
提交
取消