14

tqdmプログレスバーが次のような他の印刷物によって壊れていることがよくあります。

 93%|█████████▎| 28/30 [00:02<00:00, 13.44it/s]Subject S9
100%|██████████| 30/30 [00:02<00:00, 12.94it/s]
 93%|█████████▎| 28/30 [00:02<00:00, 11.49it/s]Pickling...
100%|██████████| 30/30 [00:02<00:00, 11.47it/s]

ここでは、進行状況バーを 2 つだけ表示する必要があります。それでも成功しましたが、一部のテキストの印刷が進行状況バーを高い割合で中断し、残りのテキストが後で印刷されます。

どういうわけかプログレスバーを「フラッシュ」することは可能ですか?

私が読んだ、それはデフォルトでにtqdm印刷さstderrれ、それをフラッシュしようとしました

sys.stderr.flush()

しかし、これは役に立ちませんでした。

上記はすべて PyCharm コンソール シミュレーションで発生したため、これに関連する可能性があります。

4

7 に答える 7

1

一度に明示的にフラッシュするには、 を使用しますrefresh()。最後に明示的にフラッシュするには、tqdm が動かなくなった場合に を呼び出す必要がありますtqdm.close(self)。例:

import time
i_range=tqdm(range(5))
for i in i_range:
        i_range.refresh()
        time.sleep(1)
i_range.close()    

より複雑なネストされたループの例:

progress = tqdm(range(5*3 ) )
for i in range(5):
    print '============================='
    for j in range(3):
        time.sleep(1)
        progress.update()
        progress.refresh()
progress.close()

tqdm には、リフレッシュ頻度に関連するパラメータがあることに注意してください。

mininterval : float、オプション 進行状況表示の最小更新間隔 [デフォルト: 0.1] 秒。maxinterval : float、オプション 進行状況表示の最大更新間隔 [デフォルト: 10] 秒。

于 2018-09-24T13:17:20.240 に答える