ときどきtqdmのプログレスバーをoffにしたい
目次
どういう状況?
メインの処理があって、プログレスバーを表示したい。でも、API経由でメインの処理を呼び出すときはプログレスバーを表示したくない。
たぶん、実装例を示した方が早い。下の例で、 function_main_progress のプログレスバーを「API経由でない時に限り」呼び出しをしたい。function_api 経由で function_main_progress を呼び出すときには、プログレスバーを表示したくない。
1 2 3 4 5 6 7 8 |
def function_main_process(): # 直に呼び出しした時だけtqdmプログレスバーを有効にしたい! # API経由のときはプログレスバーをオフにしたい。 for i in tqdm(iter_obj): print(i) def function_api(): function_main_process() |
解決策
tqdmの引数 disable をTrue にする。
コード例を示すとこんな感じ。
1 2 3 4 |
for i in tqdm.tqdm(iterative_object, disable=True): print(i) # while文で使うなら pbar = tqdm.tqdm(total=100, disable=True) |
while文でtqdmを使う話題はこちらの記事を。
別解
こういう解決策もある。tqdm用のロガーを設置して、ロガーごとに出力レベルを分ける方法。
が・・・この方法はうまくいかなかった。理由は不明。。
ディスカッション
コメント一覧
まだ、コメントがありません