@EnderBro3D

Print во время input, print накладывается на то что я пишу |?

Когда я пишу какую-нибудь команду в консоль и в это время в другом потоке срабатывает функция print то на то что я писал накладывается сообщение и я должен писать с новой строки(текст который я писал ранее сохраняется).
Как мне сделать так, чтобы при print недописанная команда переходила на строчку ниже а не оставалась на том же месте?

(надеюсь всё верно сформулировал, сори, я недавно в питоне)

Screenshot
5c4ee7b047b6f813192357.png
  • Вопрос задан
  • 233 просмотра
Пригласить эксперта
Ответы на вопрос 1
@harabudjasim
input в питоне получает данные от пользователя только по нажатию Enter. Тоесть пока не нажат Enter, введенный текст находится в буфере терминала и недоступен программе. Можно начать с того что подвязаться на нажатия клавишь а не на ввод полной строки и собирать введенные сообщения вручную в программе. В момент когда надо вывести новое сообщение в лог: откатываем каретку на начало строки (\r), выводим сообщение лога, переносим строку, выводим буфер неоконченного сообщения пользователя.

Но если требуется чуть больше чем принимать пару сообщений от пользователя, рекомендую посмотреть в сторону ncurses. Это библиотека для создания терминальных интерфейсов. Там же из коробки есть обработка комбинаций клавишь и псевдографика.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы