2016-10-29 26 views
0

私のpythonプロジェクトでは、tqdmモジュールを使用してプログレスバーを表示しています。 プログレスバーの前の行に永続的なメッセージを表示したい。進行状況バーの前にtqdmを使ってメッセージを表示します

メソッドは、メッセージを同じ行に出力します。tqdm.writeは、新しい行を作成します。と

from tqdm import tqdm 

pbar = tqdm(m_list) 
for item in m_list: 
    # Do work 
    pbar.update(1) 
pbar.close() 
+0

コードを掲載することはできますか? –

答えて

1

簡単な例:set_description

$ python pbar.py {Task_1 message} 3%|████ ]

はです使用

この

$ python pbar.py {Task_1 message} 3%|████ ]

編集を達成することが可能ですループ:

import tqdm,time 

for i in tqdm.tqdm(range(9),desc="{Task_1 message}"): 
    time.sleep(0.1) 

最終的な出力:

{Task_1 message}: 100%|##############################################| 9/9 [00:00<00:00, 9.99it/s] 

あなたが説明に\nを追加した場合、それはこのようなあなたの出力をゴミ箱ます:

{Task_1 message} 
{Task_1 message}           | 0/9 [00:00<?, ?it/s] 
{Task_1 message}         | 1/9 [00:00<00:00, 9.99it/s] 
{Task_1 message}#         | 2/9 [00:00<00:00, 9.99it/s] 
{Task_1 message}######        | 3/9 [00:00<00:00, 9.99it/s] 
{Task_1 message}###########       | 4/9 [00:00<00:00, 9.99it/s] 
{Task_1 message}################     | 5/9 [00:00<00:00, 9.99it/s] 
{Task_1 message}#####################    | 6/9 [00:00<00:00, 9.96it/s] 
{Task_1 message}##########################   | 7/9 [00:00<00:00, 9.97it/s] 
{Task_1 message}###############################  | 8/9 [00:00<00:00, 9.98it/s] 
: 100%|#############################################| 9/9 [00:00<00:00, 9.98it/s] 

あなたができる唯一のことはしています最初に説明を印刷し、説明なしでタスクを実行します。これは、端末の現在の行だけを削除できるためです。

import tqdm,time 

print("{Task_1 message}") 
for i in tqdm.tqdm(range(9)): 
    time.sleep(0.1) 

以前に言ったように、あなただけ(\rを使用して)、端末の現在の行を削除することができ、SO上の制限についての数多くのトピックがあります。

代わりにcursesを使用していますが、これはまったく異なるアプローチです。

+0

プログレスバーの前にメッセージを付けることができます。メッセージと進行状況バーの間に新しい行を追加します。 – sanchit

+0

私は呪いを見ます。とにかくありがとう! – sanchit

+0

複数行のプログレスバーをサポートするためのtqdm用の実験的なプラグインがありますが、これはまだ準備ができていません! – gaborous

関連する問題