При записи возврата каретки в консоль pycharm вся строка удаляется?
У меня есть программа на Python, которая широко использует символ перевода строки для создания эффекта обновления строки консоли (в частности, индикатор выполнения).
При попытке отладки кода в PyCharm я увидел, что индикатор выполнения не печатается, пока не будет сделано.
При дальнейшем осмотре выяснилось, что при возврате каретки (\r
), вся строка удалена.
Потому что сама библиотека пишет строки вида ({line}\r
Я всегда получаю пустую строку.
Есть ли способ решить эту проблему с помощью PyCharm? В настоящее время я буду заменятьstdout
с версией, которая записывает текущую строку и перепечатывает ее после получения возврата каретки. Однако я бы предпочел простой способ сделать это.
Образец кода:
import sys
sys.stdout.write('xxx')
sys.stdout.flush()
time.sleep(1)
sys.stdout.write('\rZZ')
sys.stdout.flush()
time.sleep(1)
sys.stdout.write('yyy\r')
sys.stdout.flush()
time.sleep(1)
print ('===')
Мой пробег выглядит так:
1. «ххх» печатается
[Через 1 секунду]
2. «ZZ» печатается
[Через 1 секунду]
3. Строка удалена
[Через 1 секунду]
4. «===» печатается и программа завершается
Это происходит как в отладке, так и в консоли запуска при запуске этого сценария.