有几种解决方案可以实现在同一行打印文本,以下是其中一种。
在Python 2中,
print "\r Running... xxx",
在Python 3中,
print("\r Running... xxx", end="")
我找不到一个能同时支持python 2和3的打印解决方案。我必须使用sys.stdout.write
吗?
有几种解决方案可以实现在同一行打印文本,以下是其中一种。
在Python 2中,
print "\r Running... xxx",
在Python 3中,
print("\r Running... xxx", end="")
我找不到一个能同时支持python 2和3的打印解决方案。我必须使用sys.stdout.write
吗?
使用 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
请查看Python 2中print()
函数文档:
注意:由于名称print被识别为print语句,因此此函数通常不作为内置函数提供。要禁用语句并使用
print()
函数,请在模块顶部使用此future语句:
from __future__ import print_function
print()
函数是在 Python 2.6 版本中添加的。
sys.stdout.flush()
来刷新输出缓冲区。有没有任何解决方法? - lqez使用
from __future__ import print_function
在Python 2中,使用print作为一个函数,同样也需要这样做。
print("\r Running... xxx", end="")
print
是一个语句,因此您不需要使用括号。 - Martijn Pieters