Как прервать выполнение Python script?
Возможный дубликат:
Завершение работы Python script
У меня есть простой Python script, который я хочу прекратить выполнять, если условие выполнено.
Например:
done = True
if done:
# quit/stop/exit
else:
# do other stuff
По сути, я ищу что-то, что ведет себя эквивалентно ключевому слову "return" в теле функции, которая позволяет потоку кода выйти из функции и не выполнять оставшийся код.
Ответы
Ответ 1
Чтобы выйти из сценария, вы можете использовать
import sys
sys.exit()
Вы также можете указать значение состояния выхода, обычно целое число.
import sys
sys.exit(0)
Выход с нуля, который обычно интерпретируется как успех. Ненулевые коды обычно рассматриваются как ошибки. По умолчанию выход с нуля.
import sys
sys.exit("aa! errors!")
Печать "аа! ошибки!" и выходит с кодом состояния 1.
В модуле os также есть функция _exit(). Функция sys.exit() вызывает исключение SystemExit для выхода из программы, поэтому могут выполняться операторы try и код очистки. Версия os._exit() этого не делает. Он просто завершает программу без какой-либо очистки или очистки выходных буферов, поэтому его обычно не следует использовать.
Документы Python указывают, что os._exit() - это обычный способ завершить дочерний процесс, созданный с помощью вызова os.fork(), поэтому он может использоваться в определенных обстоятельствах.
Ответ 2
import sys
sys.exit()
Ответ 3
Вы можете поместить тело вашего script в функцию, а затем вы можете вернуться из этой функции.
def main():
done = True
if done:
return
# quit/stop/exit
else:
# do other stuff
if __name__ == "__main__":
#Run as main program
main()
Ответ 4
Вы можете использовать:
import sys
sys.exit(...)
или
raise SystemExit(...)
Необязательный параметр может быть кодом выхода или сообщением об ошибке. Оба метода идентичны. Раньше я предпочитал sys.exit, но в последнее время я переключился на повышение SystemExit, потому что он кажется лучше среди остальной части кода (из-за ключевого слова повысить).
Ответ 5
exit() должен сделать трюк
Ответ 6
exit() должен это сделать.
Ответ 7
Try
sys.exit("message")
Это похоже на perl
die("message")
если это то, что вы ищете. Он завершает выполнение script, даже если он вызывается из импортированного модуля/def/function
Ответ 8
Если вся программа должна прекратить использование sys.exit(), в противном случае просто используйте пустой возврат.
Ответ 9
done = True
if not done:
# do other stuff