5

可能重复:
Python 进度条

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

基本循环是

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

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

我真正想要的是让控制台打印出当前完成的百分比,并且在一行上完成的估计时间替换之前打印的内容,因此不必进行大量滚动。

这可以做到吗?

干杯,戴维

4

1 回答 1

8

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

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

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

sys.stdout.write("\r{0}".format((float(i)/n)*100))
sys.stdout.flush()
于 2012-07-25T15:01:17.950 回答