Как я могу обрабатывать события клавиатуры в python? Точнее, мне нужно управлять стрелками клавиатуры и некоторыми другими клавишами для моего приложения командной строки. Есть ли модуль для этого или мне нужно обрабатывать ключ за ключом, используя, например, «if get (key) == (mykey): сделайте что-нибудь» (это псевдокод)? Я на ОС Gnu/Linux.
Обработка событий клавиатуры в python
Ответы (4)
Вероятно, вы ищете библиотеку Python (n)curses. Это позволит «обойти» буферизацию вашего терминала и напрямую работать с нажатиями клавиш.
Подойдет ли вам модуль cmd? Например, он обрабатывает историю командной строки с помощью клавиш со стрелками, а также завершения.
Если вам нужно перехватить один ключ, для этого есть кроссплатформенный рецепт ( см. также Python читает один символ от пользователя в StackOverflow ).
Предложение jkerian curses
является хорошим, и его следует использовать, если вы работаете с Unix/Linux/и т. д. (которым вы и являетесь), но если вы когда-нибудь будете работать в среде Windows, вам определенно захочется проверить pywin32 и его модуль win32con
, обертывающий функции и структуры консоли Windows API.
Я нашел еще один интересный модуль, который прост в использовании, и я буду использовать его! Модуль доступен для чтения, и вам просто нужно импортировать его, чтобы иметь «симуляцию» оболочки bash (обработка клавиатуры, списка истории и т. д.). Это для *nix систем. Я только начинаю с языка python и еще не знаю всех модулей. строка чтения