循环指标的进展

时间:2012-07-25 14:49:26

标签: python progress-bar

  

可能重复:
  Python Progress Bar

我正在运行10,000次for循环, 但是在循环内部有很多计算正在进行中。 我想向控制台打印一条进度消息,通知我循环程序在多长时间内我可能需要等待多长时间。

基本循环是

n = 10000 
for i in range(n):
   do_stuff_method()
   if(i%100 == 0):
      print (float(i)/n)*100,

这会在同一行打印一个百分比消息,但问题是我打印出的下一个内容也会在同一个屏幕上打印出来。那,并且由于有99个打印机,控制台变得非常宽,并且有很多滚动。

我真正想要的是控制台打印出当前完成的%,并且估计一行上的finsih替换之前已打印的时间,因此不必经常使用滚动。

可以这样做吗?

干杯, 戴维

1 个答案:

答案 0 :(得分:8)

在您的情况下,您只需将打印行更改为:

即可
print "\r{0}".format((float(i)/n)*100),

或者您可以像这样尝试而不是打印:

sys.stdout.write("\r{0}".format((float(i)/n)*100))
sys.stdout.flush()