在Python中附加文本和继续进度条

时间:2014-09-13 09:36:25

标签: python

我正在编写一个代码来打印进度条,如:===========>

代码段:

def run(self):
    event = self.event
    bar = '>'
    sys.stdout.write(bar)
    while not event.is_set():
        bar = "=".join(["", bar])
        sys.stdout.write(bar)
        sys.stdout.flush()
        event.wait(1)

这总是返回>=>==>===>====>所以基本上是打印>那么=> ,==> ...

如何获得=============>

之类的进度条输出

2 个答案:

答案 0 :(得分:1)

您可以使用\r返回到行的开头并覆盖它,例如:

import time
import sys

bar = '>'
for i in range(100):
    bar = '='.join(['', bar])
    sys.stdout.write('\r' + bar)
    sys.stdout.flush()
    time.sleep(0.5)

答案 1 :(得分:0)

这是因为你用“>”开始吧而不是添加到最后,这应该像你想要的那样工作,而且你真的不需要吧:

def run(self):
event = self.event
while not event.is_set():
    sys.stdout.write("=")
    sys.stdout.flush()
    event.wait(1)
sys.stdout.write(">")