【问题标题】:Python 3: Standard way to surpress the b' prefix when printing [duplicate]Python 3:打印时抑制 b' 前缀的标准方法 [重复]
【发布时间】:2015-05-30 10:19:43
【问题描述】:

我最近开始使用 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)

【问题讨论】:

  • 你能举个例子吗?
  • 显示你的代码,通常这意味着它正在解释一个字节流
  • 我想我明白发生了什么。当我将 print 与预先编写的字符串一起使用时,它会自动成为 unicode 并且可以。我读了一个程序输出,所以它是 ASCII。处理它的唯一方法是将每个打印的字符串转换为unicode吗?

标签: python python-3.x


【解决方案1】:

您需要自己明确说明这一点。

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

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

【讨论】:

    猜你喜欢
    • 2013-05-20
    • 2022-04-25
    • 2012-04-14
    • 2017-03-13
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多