Задать вопрос
@Andrey_V1

Как изменить текст в консоли питона?

Как сделать динамический текст в консоли питона? Пример программы: пользователя спрашивают что-то, если он не отвечает в течение 15с, к тексту вопроса прибавляется что-то наподобие "Ответьте, пожалуйста".

Пример использования:

>>> Сколько будет 1+1?
Если прошло 15 с:
>>> Вы что? Не знаете, сколько будет 1+1 ?

Ещё один пример: (о движется от стены до стены, последующие строки изменяются покадрово, всё в одной строке)

|о----|
|-о---|
|--о--|
|---о-|
|----о|

Подскажите, пожалуйста, как можно редактировать уже введённый текст? Какие-то библиотеки?
  • Вопрос задан
  • 149 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Daemon23RUS
@Daemon23RUS
Из простого (в строке)
print('|о----|', end='\r', flush=True)
time.sleep(5)
print('|----o|', end='\r', flush=True)

из библиотек sys stdout tqdm rich curses
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
По пунктам:
1. со стандартным input() такое не прокатит, придётся писать свой или искать сторонние либы.
2. Если редактировать надо только последнюю строку: вывод символа \r переведёт курсор в начало строки, а \x08 - на один символ влево. Главное, не забудь предотвратить вывод перевода строки, пока не будешь готов. Редактировать предыдущие строки так нельзя.
3. curses позволяет делать ОЧЕНЬ много, вплоть до отдельных окон в одной консоли, но под виндой из коробки не работает. Вроде был пакет windows_curses, который добавляет поддержку виндового терминала.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы