I am using following code which I have found on
http://www.ibiblio.org/obp/py4fun/ few months ago. It works well for my
purposes. Another way is to use Curses library.
HTH
Petr Jakes

#!/usr/local/bin/python
#
#  t t y L i n u x . p y
#
#  getLookAhead reads lookahead chars from the keyboard without
#  echoing them. It still honors ^C etc
#
import termios, sys, time
if sys.version > "2.1" : TERMIOS = termios
else                   : import TERMIOS

def setSpecial () :
        "set keyboard to read single chars lookahead only"
        global oldSettings
        fd = sys.stdin.fileno()
        oldSettings = termios.tcgetattr(fd)
        new = termios.tcgetattr(fd)
        new[3] = new[3] & ~TERMIOS.ECHO    # lflags
        new[3] = new[3] & ~TERMIOS.ICANON  # lflags
        new[6][6] = '\000'    # Set VMIN to zero for lookahead only
        termios.tcsetattr(fd, TERMIOS.TCSADRAIN, new)

def setNormal () :
        "restore previous keyboard settings"
        global oldSettings
        fd = sys.stdin.fileno()
        termios.tcsetattr(fd, TERMIOS.TCSADRAIN, oldSettings)

def readLookAhead () :
        "read max 1 chars (arrow escape seq) from look ahead"
        return sys.stdin.read(1)

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to