Для Unix используются модули sys, tty, termios.
import sys, tty, termios
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
Для Windows используется модуль msvcrt.
import msvcrt
ch = msvcrt.getch()
Источник