我使用Python 3.x並下載了progressbar2庫;然而,我正在努力如何在我的程序中使用它。當有指定的範圍時,一切正常,但我如何通過自己的代碼實時更新進度條?我希望進度條在文本列表的每一次迭代中跳躍20%,並首先顯示並在打印結果時刷新進度。CLI中的Python ProgressBar
我還發現了另一個類似於我的Stack的問題,但我更喜歡使用progressbar2庫,因爲它已經在那裏了。考慮以下幾點:
import time
import progressbar
texts = ['a', 'b', 'c', 'd', 'e']
def basic_widget_example (texts):
widgets = [progressbar.Percentage(), progressbar.Bar()]
bar = progressbar.ProgressBar (widgets = widgets, max_value = len (texts)).start()
for i in range (len (texts)):
print (texts [i])
time.sleep (0.1)
bar.update (i + 1)
bar.finish()
結果:
N/A%| |a
20%|###################### |b
40%|############################################ |c
60%|################################################################## |d
80%|######################################################################################## |e
100%|###############################################################################################################|
我想它看起來就像這樣:
100%|#############################################################|
a
b
c
d
e
一種解決方案是創建2環,但你可以看到進度條顯示不再準確或與我的任務同步。即使我的任務可能需要2分鐘才能完成,進度條仍會在不到一秒的時間內顯示100%。任何想法如何在儘可能接近準確的情況下做到這一點?
def basic_widget_example (texts):
widgets = [progressbar.Percentage(), progressbar.Bar()]
bar = progressbar.ProgressBar (widgets = widgets, max_value = len (texts)).start()
for i in range (len (texts)):
# Do something
time.sleep (0.1)
bar.update (i + 1)
bar.finish()
for text in texts:
print (text)