как остановить выполнение кода в python
Как остановить выполнение скрипта Python
Можно ли остановить выполнение скрипта Python в любой строке с помощью команды? Ответ — да. Вы можете остановить скрипт Python в любой момент времени. Вы можете сделать это вручную или программно, и в этом руководстве мы рассмотрим каждый подход один за другим.
Скрипт остановки Python
Есть много способов остановить выполнение скриптов Python в системе.
Нажмите CTRL + C, чтобы завершить сценарий Python.
Если ваш код выполняется на интерактивной консоли, нажатие Ctrl + C вызовет исключение KeyboardInterrupt на основной поток.
Если ваш код Python не улавливает это исключение, то KeyboardInterrupt вызовет выход Python. Однако блок except KeyboardInterrupt : или что-то вроде bare except не позволит этому механизму действительно остановить выполнение скрипта.
Как программно остановить скрипт в Python
Чтобы программно остановить скрипт Python, используйте exit () в вашем коде.
Функция sys.exit () завершает скрипт Python, даже если вы запускаете что-то параллельно через пакет многопроцессорной обработки.
Чтобы использовать sys.exit () в своей программе, вы должны импортируйте его в начало файла.
Давайте посмотрим на следующий пример.
Если вы запустите программу, она не выдаст никакого вывода, потому что программа останавливается до того, как она выполнит dict-код.
Использование ОС. Метод _exit (0)
Вы также можете завершить выполнение скрипта Python с помощью метода os._exit (0). Чтобы использовать метод _exit (0), вам необходимо импортировать модуль os в начале файла.
Это не даст вам никакого вывода, поскольку программа уже завершена функцией os._exit (0).
Завершение работы скрипта Python
Я в курсе die() команда в PHP, которая рано останавливает скрипт.
Как я могу это сделать в Python?
10 ответов
выход из Python. Это осуществляется путем повышения SystemExit исключение, поэтому действия очистки, указанные в предложениях finally из try заявления соблюдаются, и можно перехватить попытка выхода на внешнем уровне.
необязательный аргумент arg может быть целым числом, дающим статус выхода (значение по умолчанию равно нулю) или другой тип объекта. Если это целое число, ноль считается «успешным завершением», и любое ненулевое значение считается «ненормальным окончание» снарядами и тому подобное. Большинство систем требовать, чтобы он находился в диапазоне 0-127, и давать неопределенные результаты иначе. В некоторых системах существует соглашение о присвоении конкретных значения для конкретных кодов выхода, но это, как правило, недоразвитые; программы Unix обычно используют 2 для синтаксиса командной строки ошибки и 1 для всех других видов ошибок. Если другой тип объекта передается, None эквивалентно передаче нуля, а любой другой объект напечатано на stderr и приводит к коду выхода 1. Особенно, sys.exit(«some error message») быстрый способ выхода из программы, когда возникает ошибка.
С exit() в конечном счете» только » вызывает исключение, оно будет только выходить процесс при вызове из основного потока, и исключение не является перехваченный.
обратите внимание, что это «хороший» способ выхода. @glyphtwistedmatrix ниже указывает, что если вы хотите «жесткий выход», вы можете использовать ОС.Для _exit(errorcode), хотя это, вероятно, в какой-то степени специфично для ОС (например, это может не принимать код ошибки под windows), и это определенно менее дружелюбно, поскольку он не позволяет интерпретатору делать какие-либо очистка перед процессом умирает.
простой способ завершить скрипт Python раньше-использовать встроенную функцию quit (). Нет необходимости импортировать какую-либо библиотеку, и это эффективно и просто.
Завершение программы в Python
Как сделать раннее завершение программы в Python? В самоучителе я нашёл несколько примеров:
Однако там не было объяснения какой метод лучше. Какой метод является наиболее «безаварийным»?
И заодно: есть ли в Python понятие Autocloseable объектов? Если я сделаю ранее завершение программы, нужно ли мне будет закрывать файлы и т.д.?
2 ответа 2
Короткий ответ:
Лучше использовать sys.exit()
Функция exit и аналогичная ей quit созданы для удобства работы в интерактивном режиме и их не рекомендуется использовать внутри скриптов:
They are useful for the interactive interpreter shell and should not be used in programs.
По факту они также просто поднимают исключение, и при попытке вызова без скобок напишут подсказку о правильном способе выхода из интерпретатора:
Использовать sys.exit стоит потому, что эта функция лежит в стандартном модуле и будет всегда там доступна. Также это довольно явный способ выразить своё желание завершить программу.
The standard way to exit is sys.exit(n)
Этот код откроет файл, напечатает его содержимое на экран и закроет файл автоматически, даже если возникнет исключение при его печати.
is equivalent to this:
Вот небольшой пример работы этой функции:
Однако, при использовании конструкции with это оборачивание происходит автоматически, и все ресурсы закрываются корректно.
Правильный способ приостановить программу Python
Я использую функцию ввода как способ приостановить мои скрипты
есть ли формальный способ сделать это?
10 ответов
кажется мне прекрасным (или raw_input() в Python 2.Икс.) В качестве альтернативы вы можете использовать time.sleep() Если вы хотите сделать паузу на определенное количество секунд.
Я предполагаю, что вы хотите сделать паузу без ввода
Итак, я обнаружил, что это очень хорошо работает в моих начинаниях кодирования. Я просто создана функция в самом начале моей программы,
теперь очевидно, что эта программа не имеет цели и просто для примера целей, но вы можете понять, что именно я означать.
примечание: для Python 3 вам нужно будет использовать input В противоположность raw_input
Я использую следующее Для python 2 и 3, чтобы приостановить выполнение кода, пока пользователь не нажмет ENTER
у меня был аналогичный вопрос, и я использовал сигнал:
, который отправит сигнал 2 (т. е. SIGINT) в вашу программу python. Ваша программа вызовет зарегистрированный обработчик и продолжит работу.
Как указал mhawke и stevehaкомментарии, лучший ответ на этот точный вопрос будет:
для длинного блока текста лучше всего использовать input(‘Press to continue’) (или raw_input(‘Press to continue’) на Python 2.x) запрашивать пользователя, а не время задержки. Быстрые читатели не хочу ждать задержки, медленные читатели могут захотеть больше времени задержка, кто-то может быть прерван во время чтения и хочет намного больше времени и т. д. Кроме того, если кто-то использует программу много, он/она возможно, привыкли, как это работает и не нужно даже читать долго текст. Это просто дружелюбнее, чтобы позволить пользователю контролировать, как долго блок текст отображается для чтения.
Как выйти из программы в Python 3
Как выйти из программы в Python 3 при помощи разных самых простых команд, методов, функций, операторов. Как корректно завершить работу программы и избежать различных ошибок?
Версия Python 3.5
Стандартный способ завершения программы в Python
Для этого варианта первую строчку ниже нужно прописать в самом начале файла, так как любой импорт пакетов или модулей производится только в самом начале файла. А уже в нужном месте кода для остановки и выхода из программы следует прописать вторую строчку кода. Если поискать, в интернете можно найти информацию, что данный вариант является самым оптимальным. Также программисты пишут, что данная функция лежит в стандартном модуле и поэтому всегда доступна.
Вызов sys.exit() — стандартный способ завершения программы в Python. Но это не так, если не подключить модуль, она не сработает.
Функция exit() для выхода из программы в Python 3
А вот функция exit() поможет не просто прервать выполнения цикла, но и полностью останавливает программу, код далее не читается. В переводе с английского exit — выход. Кстати, подключать для вызова и корректной работы данной функции в Python 3.5 никакой модуль не нужно — она прекрасно работает и так.
Также была найдена информация, что exit() является помощником для интерактивной оболочки (консоли), тем временем как sys.exit предназначен для использования в программах.
Кстати, функция quit() также работает для закрытия программы на Python и не требует для своей работы подключения каких-либо модулей.
Оператор break также может закрыть выполнение программы. Чаще он используется именно в цикле для выхода з него, выполнение программы продолжится далее по коду. В переводе с английского break — перерыв.