1. ホーム
  2. python

[解決済み] Python プログレスバー

2022-03-22 20:54:03

質問

時間がかかりそうなタスクをスクリプトで実行する場合、プログレスバーをどのように使用すればよいですか?

例えば、ある程度の時間がかかる関数で、その関数が完了すると True となります。関数が実行されている間、プログレスバーを表示するにはどうすればよいですか?

なお、私はこれをリアルタイムで行う必要があるので、どうしたらいいのかがわかりません。そのためには thread のためのものですか?全く分かりません。

今は関数の実行中に何も表示していませんが、プログレスバーがあればいいと思います。また、私はコードの観点からこれをどのように行うことができるかについてより興味を持っています。

どのように解決するのですか?

特定のライブラリ( このようなものはこちら ) が、非常にシンプルなものでよいかもしれません。

import time
import sys

toolbar_width = 40

# setup toolbar
sys.stdout.write("[%s]" % (" " * toolbar_width))
sys.stdout.flush()
sys.stdout.write("\b" * (toolbar_width+1)) # return to start of line, after '['

for i in xrange(toolbar_width):
    time.sleep(0.1) # do real work here
    # update the bar
    sys.stdout.write("-")
    sys.stdout.flush()

sys.stdout.write("]\n") # this ends the progress bar

プログレスバー2 のフォークです。 プログレスバー はもう何年もメンテナンスされていません。