Проблема выхода из кода в Python 2.7 - PullRequest
0 голосов
/ 13 июня 2018

Я работаю над 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

**SCREENSHOT OF THE ERROR**

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Я нашел проблему.Проблема была с while(True):.Как только я это закомментирую, он выходит без проблем.

0 голосов
/ 13 июня 2018

Не глядя на move_group_python_interface(), очень трудно сказать.

Изучая снимок экрана с вашей ошибкой (в будущем включите текст ошибки в вопрос), вы нажимаете ^C как частьпоток при запуске move_group_python_interface().

Если 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)

...