You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
875 B
Python
40 lines
875 B
Python
class _Getch:
|
|
"""Gets a single character from standard input. Does not echo to the
|
|
screen."""
|
|
def __init__(self):
|
|
try:
|
|
self.impl = _GetchWindows()
|
|
except ImportError:
|
|
self.impl = _GetchUnix()
|
|
|
|
def __call__(self): return self.impl()
|
|
|
|
|
|
class _GetchUnix:
|
|
def __init__(self):
|
|
import tty, sys
|
|
|
|
def __call__(self):
|
|
import sys, tty, termios
|
|
fd = sys.stdin.fileno()
|
|
old_settings = termios.tcgetattr(fd)
|
|
try:
|
|
tty.setraw(sys.stdin.fileno())
|
|
ch = sys.stdin.read(1)
|
|
finally:
|
|
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
|
|
#print(hex(ord(ch)))
|
|
return ch
|
|
|
|
|
|
class _GetchWindows:
|
|
def __init__(self):
|
|
import msvcrt
|
|
|
|
def __call__(self):
|
|
import msvcrt
|
|
return msvcrt.getch()
|
|
|
|
|
|
getch = _Getch()
|