web-dev-qa-db-ja.com

コマンドラインPythonでキープレスを受け入れる方法は?

可能性のある複製:
Pythonはユーザーから1文字を読み取ります

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のようなGUIベースのソリューションを使用することはできません。

どんな助けも大歓迎です!!

19
Elmer

簡単な呪いの例。詳細については、 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()
33
dwblas