私は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
一つの解決策は、forループ2を作成することですが、あなたが見ることができるようにプログレスバーの表示が正確でなくなったり、タスクに同期したりしています。タスクが完了するまでに2分かかることがあるにもかかわらず、プログレスバーには1秒未満で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)