我想知道如何正確地解決類似這樣的問題,請在像貝殼吧進展它看起來像這樣:如何使用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