为了账号安全,请及时绑定邮箱和手机立即绑定

将字节转换为字符串?

将字节转换为字符串?

红糖糍粑 2019-06-03 09:55:53
将字节转换为字符串?我使用这段代码从外部程序获得标准输出:>>> 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'


查看完整回答
反对 回复 2019-06-03
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

我认为这种方法很简单:


bytes = [112, 52, 52]

"".join(map(chr, bytes))

>> p44


查看完整回答
反对 回复 2019-06-03
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

您需要对字节字符串进行解码,并将其转换为字符(Unicode)字符串。

b'hello'.decode(encoding)

或者在Python 3上

str(b'hello', encoding)


查看完整回答
反对 回复 2019-06-03
  • 4 回答
  • 0 关注
  • 659 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信