python3:超越b';打印时使用前缀

python3:超越b';打印时使用前缀,python,python-3.x,Python,Python 3.x,我最近开始使用Python 3,我知道在这个版本中,print()函数假定字符串是unicode而不是ASCII(8位字符) 嗯,我知道我的字符串有时是ASCII码,但我真的不在乎它。为什么我总是要在屏幕上打印一个恼人的b'前缀 有没有办法关闭这个“功能” 我的代码: proc = subprocess.Popen(diff_cmd, shell = True, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) while proc.po

我最近开始使用Python 3,我知道在这个版本中,print()函数假定字符串是unicode而不是ASCII(8位字符)

嗯,我知道我的字符串有时是ASCII码,但我真的不在乎它。为什么我总是要在屏幕上打印一个恼人的b'前缀

有没有办法关闭这个“功能”

我的代码:

proc = subprocess.Popen(diff_cmd, shell = True, stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
while proc.poll() is None:
    output = proc.stdout.readlines()
    for line in output:
        print(line)

你自己需要清楚地说明这一点

您需要指定编码并将字节解码为Unicode(ASCII编码):
line.decode('ASCII')
。若对象有时是字节,有时是Unicode,那个么您需要相应地处理它


之后,您可以将其传递到
print()

您可以给出一个字符串示例吗?显示您的代码,通常这意味着它正在解释字节流请参阅相关:我想我理解了发生的情况。当我对预先写入的字符串使用print时,它会自动使用unicode,并且是ok。我读取了一个程序输出,所以它是ASCII码。处理它的唯一方法是将每个打印的字符串转换为unicode吗?