Я написал программу в IDLE для токенизации текстовых файлов, и она начинает токенизировать 349 текстовых файлов! Как я могу это остановить? Как я могу остановить работающую программу Python?
Вы также можете сделать это, если используете функцию exit ()
в своем коде. В идеале вы можете сделать sys.exit ()
. sys.exit ()
может прекратить работу Python, даже если вы запускаете вещи параллельно через пакет multiprocessing
.
Если ваша программа работает на интерактивной консоли, нажмите & lt; kbd & gt; CTRL & lt; / kbd & gt; + & lt; kbd & gt; C & lt; / kbd & gt; вызовет исключение KeyboardInterrupt
в основной ветке.
Если ваша программа Python не поймает ее, KeyboardInterrupt
приведет к выходу Python. Однако блок кроме KeyboardInterrupt:
или что-то вроде bare, кроме:
, предотвратит фактическое прекращение работы этого механизма.
Иногда, если KeyboardInterrupt
не работает, вы можете вместо этого отправить сигнал SIGBREAK
; в Windows & lt; kbd & gt; CTRL & lt; / kbd & gt; + & lt; kbd & gt; Пауза / Перерыв & lt; / kbd & gt; может обрабатываться интерпретатором без генерации перехваченного исключения KeyboardInterrupt
.
Однако эти механизмы в основном работают только в том случае, если интерпретатор Python работает и реагирует на события операционной системы. Если интерпретатор Python по какой-либо причине не отвечает, наиболее эффективным способом является прекращение всего процесса операционной системы, в котором работает интерпретатор. Механизм для этого зависит от операционной системы.
В среде оболочки в стиле Unix вы можете нажать & lt; kbd & gt; CTRL & lt; / kbd & gt; + & lt; kbd & gt; Z & lt; / kbd & gt; приостановить любой процесс, который в данный момент управляет консолью. Как только вы получите приглашение оболочки, вы можете использовать jobs
для перечисления приостановленных заданий, и вы можете убить первую приостановленную работу с kill% 1
. (Если вы хотите снова запустить его, вы можете продолжить работу на переднем плане, используя fg% 1
; прочитайте руководство по вашей оболочке по управлению работой для получения дополнительной информации.)
Кроме того, в Unix или Unix-подобной среде вы можете найти PID процесса Python (идентификатор процесса) и убить его с помощью PID. Используйте что-то вроде ps aux | grep python
, чтобы найти, какие процессы Python выполняются, а затем используйте kill & lt; pid & gt;
для отправки сигнала SIGTERM
.
Команда kill
в Unix отправляет SIGTERM
по умолчанию, а программа Python может установить обработчик сигналов для SIGTERM
, используя модуль signal
. Теоретически, любой обработчик сигналов для SIGTERM
должен изящно отключить процесс. Но иногда, если процесс застрял (например, заблокирован в состоянии бесперебойного ожидания IO), сигнал «SIGTERM» не имеет никакого эффекта, потому что процесс не может даже проснуться, чтобы справиться с ним.
Чтобы принудительно убить процесс, который не отвечает на сигналы, вам необходимо отправить сигнал SIGKILL
, иногда называемый kill -9
, потому что 9
- это числовое значение константы SIGKILL
. В командной строке вы можете использовать kill -KILL & lt; pid & gt;
(илиkill -9 & lt; pid & gt;
для краткости), чтобы отправить SIGKILL
и немедленно остановить процесс.
В Windows у вас нет системы сигналов процесса Unix, но вы можете принудительно завершить запущенный процесс с помощью функции TerminateProcess
. Задним числом самый простой способ сделать это - открыть диспетчер задач, найти процесс python.exe
, соответствующий вашей программе, и нажать кнопку «Конечный процесс». Вы также можете использовать команду taskkill
для аналогичных целей.
Ctrl + C
.exit ()
вы можете это сделать.pkill -f name-of-the-python-script
.Чтобы остановить работающую программу, используйте CTRL + C , чтобы завершить процесс.
Чтобы программно обрабатывать его в python, импортируйте модуль sys
и используйте sys.exit ()
, где вы хотите прекратить программу.
import sys
sys.exit()
& lt; kdb & gt; Ctrl & lt; / kbd & gt; + & lt; kbd & gt; Z & lt; / kdb & gt; должен сделать это, если вы попали в оболочку питона. Имейте в виду, что экземпляры сценария могут продолжать работать в фоновом режиме, поэтому в Linux вы должны убить соответствующий процесс.
Чтобы остановить скрипт питона с помощью клавиатуры: Ctrl
+ C
Чтобы остановить его с помощью кода (это сработало для меня на Python 3):
import os
os._exit(0)
Вы также можете использовать:
import sys
sys.exit()
или:
exit()
или:
raise SystemExit
& lt; kbd & gt; Control & lt; / kbd & gt; + & lt; kbd & gt; D & lt; / kbd & gt; работает для меня в Windows 10. Кроме того, установка exit ()
в конце также работает.
Чтобы остановить вашу программу, просто нажмите & lt; kbd & gt; CTRL & lt; / kbd & gt; + & lt; kbd & gt; D & lt; / kbd & gt ;
или exit ()
.
Нажмите & lt; kbd & gt; Ctrl & lt; / kbd & gt; + & lt; kbd & gt; Alt & lt; / kbd & gt; + & lt; kbd & gt; Delete & lt; / kbd & gt; и появится диспетчер задач. Найдите команду Python, щелкните по ней правой кнопкой мыши и нажмите «Стоп» или «Убить».
Программно вы можете использовать это:
while True:
pass