Обработка событий клавиатуры в python

Как я могу обрабатывать события клавиатуры в python? Точнее, мне нужно управлять стрелками клавиатуры и некоторыми другими клавишами для моего приложения командной строки. Есть ли модуль для этого или мне нужно обрабатывать ключ за ключом, используя, например, «if get (key) == (mykey): сделайте что-нибудь» (это псевдокод)? Я на ОС Gnu/Linux.


person stdio    schedule 14.06.2011    source источник


Ответы (4)


Вероятно, вы ищете библиотеку Python (n)curses. Это позволит «обойти» буферизацию вашего терминала и напрямую работать с нажатиями клавиш.

person jkerian    schedule 14.06.2011
comment
Спасибо. Я уже кое-что подумал о проклятиях, и вы меня подтвердили. - person stdio; 14.06.2011

Подойдет ли вам модуль cmd? Например, он обрабатывает историю командной строки с помощью клавиш со стрелками, а также завершения.

Если вам нужно перехватить один ключ, для этого есть кроссплатформенный рецепт ( см. также Python читает один символ от пользователя в StackOverflow ).

person Eric O Lebigot    schedule 14.06.2011
comment
Кажется, мне тоже нужен модуль cmd :) спасибо. Я щелкнул ваш ответ как полезный. - person stdio; 14.06.2011

Предложение jkerian curses является хорошим, и его следует использовать, если вы работаете с Unix/Linux/и т. д. (которым вы и являетесь), но если вы когда-нибудь будете работать в среде Windows, вам определенно захочется проверить pywin32 и его модуль win32con, обертывающий функции и структуры консоли Windows API.

person JAB    schedule 14.06.2011

Я нашел еще один интересный модуль, который прост в использовании, и я буду использовать его! Модуль доступен для чтения, и вам просто нужно импортировать его, чтобы иметь «симуляцию» оболочки bash (обработка клавиатуры, списка истории и т. д.). Это для *nix систем. Я только начинаю с языка python и еще не знаю всех модулей. строка чтения

person stdio    schedule 15.06.2011