1

次のようなものを使用して、非常に単純なプログレスバーがあります。

import sys
from time import sleep

current = 0
limit = 50
while current <= limit:
    sys.stdout.write('\rSynced %s/%s orders' % (current, limit))
    current_order += 1
    sleep(1)

Puttyでsshを使用する場合を除いて、正常に動作します。パテは3分ごと、または行が\nで終わる場合にのみ更新されます。これはPutty設定、sshd_configですか、それともコード化できますか?

4

3 に答える 3

3

通話sys.stdout.flush()後に実行してみてください。sys.stdout.write

于 2010-04-26T09:04:42.230 に答える
1

を使用flush()して更新を強制できます。

sys.stdout.write('\r[%s%s]' % ('=' * completed, ' ' * (total-completed)))
sys.stdout.flush()
于 2010-04-26T09:04:55.353 に答える
0

sys.stderr.write代わりに、そのままバッファリングされないを使用します。sys.stdoutこれにより、進行状況インジケーターを(おそらく)有用なプロセス出力から分離できます。

于 2010-04-26T23:09:33.743 に答える