[英]print that only prints one line
你如何让 print 每次只打印一行
for i in range(1,100)
print i
但后来我希望它每次打印一行,所以它会是:1,然后 1 将被删除,然后它会打印 2,依此类推。
尾随逗号抑制换行,回车移动到行首。
for i in range(1,100):
print "\r",i,
这适用于 Linux。
像这样?
import sys
import time
>>> for i in range(1, 100):
... sys.stdout.write(str(i))
... sys.stdout.flush()
... time.sleep(0.2)
... sys.stdout.write("\b"*4)
<numbers count here>
>>>
你可以试试这个:
import sys
import time
for num in range(100):
sys.stdout.write("\r "+str(num))
sys.stdout.flush()
time.sleep(0.3)
取决于你的平台。 如果您可以使用 curses 模块,请使用它。 如果您使用的是 Windows,并且使用的是足够旧版本的 Python(2.6 和更早版本),您可以尝试 Fredrik Lundh 的控制台。
在我看来,您正在寻找进度条。 如果是这样,请查看一些现成的。
即使您没有制作进度条,其中的代码也需要执行类似的操作。 也许它可以给你一些线索。
因为我不是 python 人,所以我不知道 python 语法。 对于 Perl,您可以将\r
字符添加到插值引号中,这会将 cursor 移回行首,从而在下一次迭代中覆盖任何先前的文本。 或许 python 也有类似的特点。
perl -e 'print "$_\r" for (1..100); print "\n";'
最简单的方法是使用退格符\b
像
from __future__ import print_function import sys, time for i in range(1, 100): print('\b\b\b%d' % i, end='') sys.stdout.flush() time.sleep(0.1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.