Как мне прервать выполнение скрипта на Python?[дубликат]

StackOverflow https://stackoverflow.com/questions/179369

  •  05-07-2019
  •  | 
  •  

Вопрос

Возможный Дубликат:
Завершение работы скрипта на Python

У меня есть простой скрипт на Python, который я хочу прекратить выполнять, если будет выполнено условие.

Например:

done = True
if done:
    # quit/stop/exit
else:
    # do other stuff

По сути, я ищу что-то, что ведет себя эквивалентно ключевому слову 'return' в теле функции, что позволяет потоку кода завершать функцию и не выполнять оставшийся код.

Это было полезно?

Решение

Чтобы выйти из скрипта, который вы можете использовать,

import sys
sys.exit()

Вы также можете указать значение состояния выхода, обычно целое число.

import sys
sys.exit(0)

Выход с нуля, который обычно интерпретируется как успех. Ненулевые коды обычно рассматриваются как ошибки. По умолчанию это выход с нуля.

import sys
sys.exit("aa! errors!")

Печатает " аа! ! Ошибка & Quot; и выходит с кодом состояния 1.

В модуле os также есть функция _exit (). sys.exit () вызывает исключение SystemExit чтобы выйти из программы, попробуйте выполнить операторы и код очистки. Версия os._exit () этого не делает. Он просто завершает программу без какой-либо очистки или очистки выходных буферов, поэтому его обычно не следует использовать.

документы Python указывают, что os._exit () - это обычный способ завершить дочерний процесс, созданный с помощью вызова os.fork (), поэтому он может использоваться в определенных обстоятельствах.

Другие советы

import sys
sys.exit()

Вы можете поместить тело вашего скрипта в функцию, а затем вы можете вернуться из этой функции.

def main():
  done = True
  if done:
    return
    # quit/stop/exit
  else:
    # do other stuff

if __name__ == "__main__":
  #Run as main program
  main()

Вы можете либо использовать:

import sys
sys.exit(...)

или:

raise SystemExit(...)

Необязательным параметром может быть код выхода или сообщение об ошибке.Оба метода идентичны.Раньше я предпочитал sys.exit, но недавно я переключился на запуск SystemExit, потому что он, кажется, лучше выделяется среди остального кода (из-за поднять ключевое слово).

exit () должен сделать свое дело

exit () должен это сделать.

Попробуй

sys.exit("message")

Это похоже на perl

die("message")

если это то, что вы ищете.Это завершает выполнение скрипта, даже если он вызывается из импортированного модуля / def / function

Если вся программа должна прекратить использование sys.exit (), в противном случае просто используйте пустой возврат.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top