Как прервать выполнение 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