我正在处理ROS,并用Python 2.7
编写了一段代码,在菜单中,我要求用户选择选项1或2。任务完成后,当我按Ctrl+c
键时,不是退出代码,而是再次显示菜单,而不是退出。在这里,如果我在1或2之间选择,它会一次又一次地打印菜单。
为了在我一次按下Ctrl+c
键而不是一次又一次地显示菜单时退出代码,应该建议对代码进行哪些更改?
问题的代码和屏幕截图如下:
if __name__=='__main__':
while(True):
try:
print "***********"
print "1. Continuous"
print "2. Single Step"
print "***********"
try:
choice = int(raw_input('Choose a number between 1 & 2: '))
number = choice
move_group_python_interface()
except ValueError:
print "ERROR! Choose a number between 1 and 2"
except rospy.ROSInterruptException:
break
发布于 2018-06-13 18:01:01
我找到问题了。问题出在while(True):
上。一旦我注释掉它,它就会退出,没有任何问题。
发布于 2018-06-13 07:02:35
如果不看move_group_python_interface()
,就很难说了。
检查您的错误屏幕截图(将来,将错误文本包含在问题中),当触发move_group_python_interface()
时,您正在将^C
作为流的一部分。
如果move_group_python_interface()
需要启动一个新进程,那么您就退出了该进程。
尝试将^C
作为菜单流的一部分。它看起来对我来说挺好的。
如果您对如何捕获^C
并做出相应的响应感到好奇
看看这个
if __name__=='__main__':
while(True):
try:
print "***********"
print "1. Continuous"
print "2. Single Step"
print "***********"
try:
choice = int(raw_input('Choose a number between 1 & 2: '))
number = choice
move_group_python_interface()
except ValueError:
print "ERROR! Choose a number between 1 and 2"
except KeyboardInterrupt:
print "Bye bye"
break
执行时打印
bash > python infloop.py
***********
1. Continuous
2. Single Step
***********
Choose a number between 1 & 2: ^CBye bye
(对不起,我没有ROS)
https://stackoverflow.com/questions/50826245
复制相似问题