我想知道如何正确解决与此类似的问题:
Python Progress bar
除了一个例外,我的脚本使用了一个新的行字符,看起来像这样:
#!/usr/bin/env python
import time
import sys
import random
total = 100
progress = 0
for i in xrange(0, 100):
time.sleep(0.01)
progress += 1
random_word = 'a' * random.randint(1, 10)
random_int = random.randint(4, 12)
how_many_characters = 99
sys.stdout.write("%d/100 %sn" % (progress, random_word * random_int))
sys.stdout.write("b" * how_many_characters)
虽然这条线
sys.stdout.write("b" * how_many_characters)
是问题。
如何确定以前的线路从哪里开始,多长时间?还是如何移动上一行的第一个字符?还是我还能做什么?我要实现的是更改已经显示的文本
1/100 Crazy white fox jumping over fencen
进入:
2/100 Crazy white fox jumping over fencen
额外的要求:
- 我无法从原始句子中删除该尾声 n
- 我知道在上一行的开头显示进度栏
编辑。
改进的问题以消除歧义。
尝试这个:)
import time
import sys
total = 100
progress = 0
for i in xrange(0, 9):
time.sleep(0.01)
progress += 1
sys.stdout.write("b"*5)
sys.stdout.write("%d/100" % progress)
sys.stdout.flush()
for i in xrange(10, 100):
time.sleep(0.01)
progress += 1
sys.stdout.write("b"*6)
sys.stdout.write("%d/100" % progress)
sys.stdout.flush()
time.sleep(0.01)
progress += 1
sys.stdout.write("b"*7)
sys.stdout.write("%d/100" % progress)
sys.stdout.flush()
sys.stdout.write("n")
我知道您想从注释中删除先前的进度指标。
您应该删除Newline字符,将sys.stdout.write("%d/100n" % progress)
替换为sys.stdout.write("%d/100" % progress)
,以便可以将其删除。