0

How can I handle keyboard events in python? More exactly I need to manage keyboard arrows and some other keys for my command-line application. Is there a module for this or I need to handle key by key using for example "if get(key)==(mykey): do something" (it's pseudo-code)? I'm on Gnu/Linux OS.

4 Answers 4

3

Would the cmd module suit your needs? It handles command-line history through the arrow keys, for instance, as well as completion.

If you need to catch a single key, there is a cross-platform recipe for this (see also Python read a single character from the user on StackOverflow).

Sign up to request clarification or add additional context in comments.

1 Comment

It seems I need cmd module too :) thanks. I clicked your answer as useful.
2

You're probably looking for a python (n)curses library. This will allow to "get around" your terminal buffering and work with key-presses directly.

1 Comment

Thanks. I had already thought of something about curses and you confirmed me.
1

jkerian's curses suggestion is a good one, and is the one to use if you're working with Unix/Linux/etc. (which you are), but if you ever end up working in a Windows environment, then you'll definitely want to check out pywin32 and its win32con module, which wraps the Windows API's Console functions and structs.

Comments

0

I found another interesting module that's straightforward to use and I'll use it! The module is readline and you just need to import it to have a bash shell (handle keyboard, history-list, etc) "simulation". It's for *nix systems. I'm at beginning with python language and I don't know all modules yet. readline

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.