如何使用python在外壳中键入诸如bar之类的进展



我想知道如何正确解决与此类似的问题:

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),以便可以将其删除。

相关内容

  • 没有找到相关文章

最新更新