仅打印字符串的内容

仅打印字符串的内容

这是我的代码:

#! /usr/bin/env python3
import subprocess
a = subprocess.check_output('echo -n "hello world!"',shell=True)
print("a="+str(a))


输出:

a=b'hello world!'


如果在对universal_newlines=True的调用中包含参数check_output,则将得到所需的输出:

a=hello world!


为了更好地理解现代(Unicode)时代使用文本进行编程的神秘世界,我想知道如何在不指定universal_newlines=True的情况下生成第二个输出。换句话说,我调用什么函数来转换a,以便产生所需的输出。

一个有效的例子将大有帮助。详细的解释很好,但是对于那些没有经验的人来说可能会有些困惑-可能是由于使用了重载的术语,可能是由于Python2和Python3之间的差异,或者仅仅是因为我很少需要考虑使用文本编码我的工作范围-我使用的大多数工具不需要这样的特殊处理。

另外:我相信第一个输出的类型为bytes,但是第二个输出的类型是什么?我的猜测是使用UTF-8编码的str

最佳答案

正如Ignacio的评论最初暗示的那样,您可以使用decode

>>> a = b"hello world!"
>>> print("a="+str(a))
a=b'hello world!'
>>> print("a="+a.decode())
a=hello world!

关于python - 仅打印字符串的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28590302/

10-12 20:14