データの前処理とか解析回したりとかすごい時間かかる上にいつ終わるかわかんなくてつらい
つらい
プログレスバー表示したい
[===> ]50%
こんなの欲しい。
作った
https://gist.github.com/wassen/3f559de866415472b9b2
作りました。解析そっちのけで。
既にこんなのがあることに作ってから気づいたけど、もう遅い。
使い方
その1
回したいリストなりなんなりを突っ込んでインスタンスを作ってfor文内でdisplay_progressbar呼び出す。
from ProgressBar import ProgressBar as pb
import time
list1 = "いてらぶる"
list2 = range(3)
list3 = [0,1]
pb1 = pb(list1,list2,list3)
for _ in list1:
for _ in list2:
for _ in list3:
time.sleep(0.1)
pb1.display_progressbar()
その2
同様にインスタンスを作って、メソッドからそのリストを返してもらう。
# 同上
pb2 = pb(list1, list2, list3)
for _ in pb2.generator(0):
for _ in pb2.generator(1):
for _ in pb2.generator(2):
time.sleep(0.1)
その3
インスタンスを作成せずにリストをラップするだけ。一番お手軽だけど、大雑把な進捗しか見れないのが難点。
# 同上
for _ in pb.single_generator(list1):
for _ in list2:
for _ in list3:
time.sleep(0.1)
メモとか雑感とか
・インスタンス初期化はlistじゃなくてリストの長さでもOK、しかしその2の使い方するとバグる。ので使いみちは不明
・display_progressbarを呼び出し時に明示的にインデックス指定ができる。display_progressbar(i,j,k)みたいな感じで。使いみちは不明
・リスト内にリストがある・・・とかのときに、for文の途中でリストを追加できるようにしたい
・addメソッドに突っ込んだら途中からlistを追加できるが、for文の途中でaddするとバグる
・経過時間はインスタンス初期化をした時点で測定開始されてるので注意
・色は適当に目に優しそうな色をつけときました
・不具合とか改善案とかあったら是非に
参考
ありがとうございます。
http://www.yunabe.jp/docs/terminal_progress_bar.html