web-dev-qa-db-ja.com

tqdm。複数のバーを使用する

2つの独立したプログレスバーが必要です。

これは、2本のバーを使用した場合に正しく更新されない最小限の例です。代わりに、新しいバーが作成されます。

import time
from tqdm import *

pbar1 = tqdm(total=100)
pbar2 = tqdm(total=200)

for i in range(10):
    pbar1.update(10)
    pbar2.update(20)
    time.sleep(1)

例を実行するとき。私は次のようなものを得ます:

  0%|          | 0/100 [00:00<?, ?it/s]
 20%|██        | 20/100 [00:01<00:04, 19.97it/s]
 30%|███       | 30/100 [00:02<00:04, 15.36it/s]
 40%|████      | 40/100 [00:03<00:04, 13.23it/s]
 50%|█████     | 50/100 [00:04<00:04, 12.05it/s]
 60%|██████    | 60/100 [00:05<00:03, 11.35it/s]
 70%|███████   | 70/100 [00:06<00:02, 10.90it/s]
 80%|████████  | 80/100 [00:07<00:01, 10.61it/s]
 90%|█████████ | 90/100 [00:08<00:00, 10.42it/s]
100%|██████████| 100/100 [00:09<00:00, 10.28it/s]
100%|██████████| 200/200 [00:09<00:00, 20.57it/s]

示されているように、更新は適切に機能せず、新しいバーが追加されます。適切に更新される2つの独立したバーを持つことは可能ですか?

13
Juan Leni

バーを初期化するときにpositionパラメータを使用してみてください:

pbar1 = tqdm(total=100, position=1)
pbar2 = tqdm(total=200, position=0)

tqdm GitHubページ から:

位置:int、オプション

このバーを印刷するための行オフセットを指定します(0から開始)。指定されていない場合は自動。一度に複数のバーを管理するのに便利です(たとえば、スレッドから)。

18
Aman Singh

Windowsをご利用の方は、別のスレッドで my answer をご覧ください。

短いバージョン: tqdmの既知の問題 に記載されているcoloramaパッケージをインストールします。

 pip install colorama
0
Nebulo