在Python 2和3中如何在同一行打印

5 投票
2 回答
16416 浏览
提问于 2025-04-18 13:12

有几种方法可以在同一行上打印内容,并且要在行的开头打印,像下面这样。

在Python 2中,

print "\r Running... xxx",

而在Python 3中,

print("\r Running... xxx", end="")

我找不到一个可以同时适用于Python 2和Python 3的打印方法。我是不是必须使用 sys.stdout.write 呢?

2 个回答

7

在Python 2中使用

from __future__ import print_function

同时也要把print当作一个函数来用

print("\r Running... xxx", end="")
18

使用 from __future__ import print_function 这行代码,可以让你在 Python 2 和 Python 3 中都使用 print() 这个函数来打印内容:

from __future__ import print_function

print("\r Running... xxx", end="")  # works across both major versions

你可以查看 print() 函数在 Python 2 中的说明

注意:这个函数通常不是内置的,因为 Python 2 中的 print 被当作一个语句来使用。如果你想禁用这个语句,使用 print() 函数,就需要在你的模块顶部加上这行代码:

from __future__ import print_function

print() 函数是在 Python 2.6 版本中新增的。

撰写回答