reading one byte from stdin

Diez B. Roggisch deets at nospam.web.de
Wed Jul 16 03:04:37 EDT 2008


Mark McDuff schrieb:
> I'm trying to read one byte from stdin, without the newline.
> 
> If I try something like:
>  >>> import os, sys
>  >>> os.read(sys.stdin.fileno(),1)
> 
> I can input a character, but then I have to press enter, which leaves a 
> newline character in the stdin buffer and requires two keypresses.  Is 
> there any way to read only one keypress in a simple manner (i.e. no 
> curses)?

Depending on your OS, yes. Under *nix, you need to set the terminal to 
RAW-mode.

This recipe claims to be OS-agnostinc:

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/134892

Diez



More information about the Python-list mailing list