如何打印每次只打印一行
for i in range(1,100)
print i
然后我希望它每次打印一行所以它会是:1然后1将被删除然后它将打印2依旧等等。
答案 0 :(得分:3)
尾随逗号会抑制换行符,回车符会移动到该行的开头。
for i in range(1,100):
print "\r",i,
这适用于Linux。
答案 1 :(得分:3)
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>
>>>
答案 2 :(得分:1)
你可以试试这个:
import sys
import time
for num in range(100):
sys.stdout.write("\r "+str(num))
sys.stdout.flush()
time.sleep(0.3)
答案 3 :(得分:0)
取决于您的平台。如果您可以使用curses模块,请使用它。如果您使用的是Windows,并且使用的是旧版本的Python(2.6及更早版本),则可以尝试Fredrik Lundh的Console。
答案 4 :(得分:0)
在我看来,您正在寻找进度条。如果是这样,请查看一些ready-made ones。
即使您没有制作进度条,其中的代码也需要做类似的事情。也许它可以给你一些线索。
由于我不是python的家伙,我不知道python的语法。对于Perl,您可以向插值引号添加\r
字符,这会将光标移回到行的开头,从而覆盖下一次迭代中的任何先前文本。也许python有类似的特征。
perl -e 'print "$_\r" for (1..100); print "\n";'
答案 5 :(得分:0)
最简单的方法是使用退格字符\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)