我想知道如何正确地解决类似这样的问题,请在像贝壳吧进展它看起来像这样:如何使用python
#!/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
的额外要求:
- 我无法从原句
- 我删除尾随\ n知道进度条显示在上一行的开头
编辑。
改进的问题以消除歧义。
它有什么问题,你想做什么? – tayfun
假设你想以增加的方式打印一个字符次数:'sys.stdout.write(“ - ”* progress)'但是'\ b'是退格字符不是吗? – tayfun
执行我写的这个shell脚本。它的更新进度为1/100,2/100,3/100等。我想更新旧值而不打印新值。只要您的控制台每行约90个字符,此方法就可以工作。 – Drachenfels