Possible Duplicate:
Python read a single character from the user可能重复:Python从用户读取单个字符
I am looking to be able to control a robot with the arrow keys using python. And my idea was to implement code that looked something like this...
我希望能够使用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"
However the problem is that I do not know how to get the users input. And I cannot use a GUI based solution like pygame from what I have found because the robot does not use a display.
但问题是我不知道如何获得用户输入。我不能使用基于GUI的解决方案,比如我发现的pygame,因为机器人不使用显示器。
Any help is very much appreciated!!
很感谢任何形式的帮助!!
1 个解决方案
#1
31
A simple curses example. See the docs for the curses module for details.
一个简单的诅咒示例。有关详细信息,请参阅curses模块的文档。
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()
#1
31
A simple curses example. See the docs for the curses module for details.
一个简单的诅咒示例。有关详细信息,请参阅curses模块的文档。
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()