Вопрос по python – Как принять нажатие клавиш в командной строке python? [Дубликат]

19

Possible Duplicate:
Python read a single character from the user

Я ищу возможность управлять роботом с помощью клавиш со стрелками, используя 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, из того, что я нашел, потому что робот не использует дисплей.

Любая помощь очень ценится!

Error: User Rate Limit Exceeded Elmer
Error: User Rate Limit Exceededthis questionError: User Rate Limit Exceeded Junuxx
Error: User Rate Limit Exceededstackoverflow.com/a/7264312/496445 jdi
Error: User Rate Limit Exceededcurses. Gareth Latty

Ваш Ответ

1   ответ
32

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()
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededcurses.noecho()Error: User Rate Limit ExceededcbreakError: User Rate Limit Exceeded

Похожие вопросы