是否可以操作已经打印到控制台的文本行?
例如,
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)
归档时间: |
|
查看次数: |
1314 次 |
最近记录: |