2016-11-22 2 views
0

У меня есть два сценария на питоне: a.py и b.py.Как выйти из вложенных скриптов python?

Изнутри a.py, я даю команду

os.system('python b.py') 

Если некоторые исключения найдены в b.py, я хочу полное выполнение обоих a.py и b.py быть остановлено. Есть ли способ сделать это?

Я не импортирую b.py в a.py. Я просто назову его, используя os.system().

Как можно добиться того же результата, даже если я импортирую другой скрипт?

ответ

1

os.system() возвращает (завершенное) значение выхода процесса. 0 означает успех.

Я предпочел бы рекомендовать модуль subprocess, так как он более мощный. Взгляните на subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False).

Удачи.

1

Если вы импортируете модуль b, который может вызвать исключение, которое вы не будете обрабатывать, пусть исключение остановит выполнение, не обработав его, или обработает его и exit самостоятельно.

Если вы выберете для звонка os.system, проверьте полученный код ошибки; если Python не выходит изящно (то есть, если исключение было поднято), это будет значение не 0. Вы можете проверить и принять соответствующие меры:

if os.system('python b.py'): 
    # exit from script a.by 
Смежные вопросы