在Python中在控制台上打印一行?

kpi*_*pie 5 python printing

是否可以操作已经打印到控制台的文本行?

例如,

import time
for k in range(1,100):
     print(str(k)+"/"+"100")
     time.sleep(0.03)
     #>> Clear the most recent line printed to the console
print("ready or not here I come!")
Run Code Online (Sandbox Code Playgroud)

我已经看到了一些在Windows下使用自定义DOS控制台的东西,但我真的很喜欢在command_line上运行的东西,就像没有任何额外画布的打印一样.

这存在吗?如果没有,为什么不呢?

PS:我试图使用curses,这导致我在Python之外的命令行行为出现问题.(在用Python中的curses错误输出之后,我的Bash shell停止了打印换行 - 不可接受 - ).

sir*_*rfz 10

你在寻找的是:

print("{}/100".format(k), "\r", end="")
Run Code Online (Sandbox Code Playgroud)

\r是回车,它将光标返回到行的开头.实际上,无论打印什么都将覆盖以前打印的文本.印刷后end=""要防止\n(留在同一条线上).

sonrad10评论中建议的更简单的形式:

print("{}/100".format(k), end="\r")
Run Code Online (Sandbox Code Playgroud)

在这里,我们只是用\r而不是替换结束字符\n.

Python 2中,同样可以通过以下方式实现:

print "{}/100".format(k), "\r",
Run Code Online (Sandbox Code Playgroud)

  • @kpie你正在使用python2,在这种情况下语法是`print"{}/100".format(k),"\ r",` (2认同)