我想知道如何正确解决类似的问题:
除了一个例外,我的脚本使用了一个新的行字符,它看起来像这样:
#!/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 %s\n" % (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 fence\n
分为:
2/100 Crazy white fox jumping over fence\n
额外要求:
编辑。
改进问题以消除歧义。
答案 0 :(得分:0)
试试这个:)
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")
答案 1 :(得分:0)
我了解您要从评论中删除以前的进度指示器。
您应该删除换行符,将sys.stdout.write("%d/100\n" % progress)
替换为sys.stdout.write("%d/100" % progress)
,以便将其删除。