Python: как организовать ввод команд в консоли с обработкой нажатий спец-клавиш?

Пишу на Python подобие CLI - пользователь вводит команды. Мне также необходимо реализовать обработку спец-клавиш, например:

Пользователь вводит команду, нажимает Tab - команда автодополняется. Нажимает ArrowUp - повторяется предыдущая команда.

Как я понимаю, использовать Input() и raw_input() не получится, так как до нажатия на Enter никаких действий Python выполнять не будет. Соответственно, я вижу единственный вариант - в цикле ловить каждое нажатие клавиши, если она имеет специальную функцию - выполнить ее, если нет - вывести на экран.

Я прав или все таки есть какой то более адекватный вариант?

Заранее спасибо!
  • Вопрос задан
  • 9080 просмотров
Пригласить эксперта
Ответы на вопрос 3
@mamkaololosha
schurpf.com/python/python-hotkey-module
Питон же не комбайн какой-нибудь.
Ответ написан
@stopbreath
начинающий/практикующий python-программист
Посмотрите библиотеки для работы с консольными командами. Например click.
Ответ написан
Комментировать
DerNitro
@DerNitro
Инженер
Посмотри в сторону библиотеки getch, возможность посимвольного ввода с клавиатуры.
while 1:
ch = getchar()
if ord(ch) == 10:
stdout.write('\n')
else:
stdout.write(ch)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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