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。Putty 仅每 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 回答