2013-08-14 2 views
0

Я новичок в языке python. Моя проблема заключается в том, что у меня есть два сценария python: сценарий автоматизации A и основной скрипт B. Script A внутренне вызывает скрипт B. Script B завершается всякий раз, когда исключение захватывается с использованием функции sys.exit (1). Теперь, когда скрипт B завершает работу, это также приводит к выходу из сценария A. Есть ли способ остановить выход из сценария A и продолжить его выполнение, даже если скрипт B завершает работу.Как остановить скрипт python выхода, когда выйдет другой скрипт python?

Заранее спасибо.

+0

Точно ** как ** вы называете 'scriptB'? через 'import' или какой-то syscall? – Torxed

+0

I m вызывает скрипт, импортируя его – Manu

ответ

2

Вы должны инкапсулировать код в попытке исключить блок. Это поймает ваше исключение и продолжит выполнение сценария A.

+0

Спасибо за ваш ответ. Это будет работать, если скрипт B выбрасывает исключение. Однако сценарий B вызывает sys.exit (1) в моем случае, из-за чего программа полностью завершается. – Manu

+2

За исключением SystemExit: следует поймать его –

1

sys.exit() действительно вызывает исключение SystemExit, которое поймано и обрабатывается интерпретатором Python. Все, что вам нужно сделать, это поместить вызов в «скрипт B» в блок try/except, который ловит SystemExit, прежде чем он пузырится на всем пути вверх. Например:

try: 
    script_b.do_stuff() 
except SystemExit as e: 
    print('Script B exited with return code {0}'.format(e.code)) 
Смежные вопросы