Python sys.stdout.flush () не работает - PullRequest
0 голосов
/ 02 мая 2018

Я хочу видеть прогресс моего цикла for, многократно перезаписывая функцию печати. Я ожидал, что напечатанная строка будет перезаписываться при каждом прохождении цикла. Случилось так, что после каждого цикла новая строка печаталась прямо под предыдущей напечатанной строкой. Это было решено удалением \ n из строки печати, потому что \ n приводило к тому, что новая пустая строка каждый раз перезаписывалась вместо перезаписи первой напечатанной строки.

import sys
import time

count1=0
x=10
for i in range(x):
    count1+=1
    sys.stdout.write("\r{} out of {}...\n".format(count1, x))
    sys.stdout.flush()
    time.sleep(.1)

Я использую Python 3.6 (64-разрядная версия) в Jupter Notebook 4.3.1. в Windows 10.

Я просмотрел несколько проблем, опубликованных в Stack Overflow, но пока не смог их решить.

Спасибо!

1 Ответ

0 голосов
/ 02 мая 2018

Удалите «\ n», который создает новую строку.

sys.stdout.write("\r{} out of {}...".format(count1, x))
...