Почему CR end=\r работает только со сном

Я использую end="\r" для печати count в той же строке. Мой питон слишком быстрый, и CR не успевает примениться. Скрипт переходит на следующую строку...

for i in range(10000):
    print(i,end="\r")

Что он выводит:

3495

6735

9994

9999

Он должен динамически выводить количество строк в одной строке. Затем через 2 секунды в этом примере выходы должны быть 10000...

У меня нет выбора, чтобы добавить сон (0.01), но это сильно замедляет мой скрипт. У меня 8Гб ОЗУ и 2 ЦП. Значит скрипт очень быстрый и CR можно не учитывать???

EDIT: ответ — сбросить. Решение «Печать в одной строке на ноутбуке jupyter» не работает, потому что мне не нужна функция сна, которая повысит эффективность скрипта (у меня от 400 тыс. до 28 млн элементов)


person T Tea Tie    schedule 27.06.2019    source источник
comment
Работает на меня. Вы уверены, что это не проблема с вашей консолью?   -  person poke    schedule 27.06.2019
comment
У меня 8Гб ОЗУ и 2 ЦП. Значит скрипт очень быстрый и CR можно не учитывать???   -  person T Tea Tie    schedule 27.06.2019
comment
Я не понимаю, при чем здесь процессор. То, как применяется символ возврата каретки, зависит от консоли, отображающей вывод. Вы можете попробовать sys.stdout.flush() после печати.   -  person poke    schedule 27.06.2019
comment
@TTeaTie, каков ваш ожидаемый результат?   -  person Kushan Gunasekera    schedule 27.06.2019
comment
Вот как это выглядит для меня.   -  person poke    schedule 27.06.2019
comment
@poke да, это то, что мне нужно. Но я использую блокнот Jupyter на ZOE analysiss zapp.   -  person T Tea Tie    schedule 27.06.2019
comment
Если вы выполните поиск в Google по запросу «Jupyter Notebook с возвратом каретки», вы увидите множество дискуссий на эту тему. Похоже, что он поддерживается не полностью, поскольку «[Jupyter Notebook] не является эмулятором терминала». Вместо этого вы можете использовать другие средства вывода (например, индикатор выполнения JavaScript).   -  person poke    schedule 27.06.2019
comment
Проверьте это   -  person shaik moeed    schedule 27.06.2019
comment
@poke спасибо, вы решили мою проблему с промывкой. Я надеюсь, что это не займет слишком много ресурсов (400 тысяч строк, поэтому 400 тысяч флешей)   -  person T Tea Tie    schedule 27.06.2019


Ответы (1)


Попробуй это,

for i in range(10000):
    print("\r {}".format(i),end=" ")
person shaik moeed    schedule 27.06.2019
comment
не работает, та же проблема: 3765 7453 9999 - person T Tea Tie; 27.06.2019
comment
Как вы запускаете это и на какой консоли? - person shaik moeed; 27.06.2019
comment
Я запускаю код на ноутбуке Jupyter. - person T Tea Tie; 27.06.2019