我正在编写一个代码来打印进度条,如:===========>
代码段:
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)
这总是返回>=>==>===>====>
所以基本上是打印>那么=> ,==> ...
如何获得=============>
答案 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(">")