У меня есть мертвый простой прогресс "бар", используя что-то вроде следующего:
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)
Работает отлично, за исключением ssh с Putty. Шпатлевка обновляется каждые 3 минуты или если строка заканчивается на \n. Является ли это установкой Putty, sshd_config, или я могу ее кодировать?
Попробуйте выполнить sys.stdout.flush()
после вызова sys.stdout.write
.
Вы можете использовать flush()
для принудительного обновления.
sys.stdout.write('\r[%s%s]' % ('=' * completed, ' ' * (total-completed)))
sys.stdout.flush()
Вместо этого используйте sys.stderr.write
, который не буферизуется как sys.stdout
, и таким образом вы выделяете индикатор прогресса из (предположительно) полезного выходного процесса.