Как принять keypress в командной строке python?
Возможный дубликат:
Python читает один символ от пользователя
Я ищу, чтобы иметь возможность управлять роботом с помощью клавиш со стрелками, используя python. И моя идея заключалась в том, чтобы реализовать код, который выглядел примерно так...
#!/usr/bin/env python
# control a robot using python
exit = 0
while exit == 0:
keypress = ##get keypress, if no key is pressed, continue##
if keypress == 'q':
exit = 1
break
elif keypress == KEY_UP:
##robot move forward##
elif keypress == KEY_DOWN:
##robot move backward##
print "DONE"
Однако проблема в том, что я не знаю, как заставить пользователей вводить данные. И я не могу использовать решение на основе графического интерфейса, такое как pygame, из того, что я нашел, потому что робот не использует дисплей.
Любая помощь очень ценится!
Ответы
Ответ 1
Простой пример проклятий. Подробнее см. В документах для curses module.
import curses
stdscr = curses.initscr()
curses.cbreak()
stdscr.keypad(1)
stdscr.addstr(0,10,"Hit 'q' to quit")
stdscr.refresh()
key = ''
while key != ord('q'):
key = stdscr.getch()
stdscr.addch(20,25,key)
stdscr.refresh()
if key == curses.KEY_UP:
stdscr.addstr(2, 20, "Up")
elif key == curses.KEY_DOWN:
stdscr.addstr(3, 20, "Down")
curses.endwin()