我在 IDLE 中编写了一个程序来标记文本文件,它开始标记 349 个文本文件!我怎样才能阻止它?如何停止正在运行的 Python 程序?
17 回答
如果您exit()
在代码中使用该函数,也可以这样做。更理想的是,您可以这样做sys.exit()
。即使您通过包并行运行sys.exit()
,它也可能终止 Python。multiprocessing
注意:为了使用sys.exit()
,您必须导入它:import sys
To stop your program, just press Control + C.
如果您的程序在交互式控制台上运行,按CTRL+将在主线程上C引发异常。KeyboardInterrupt
如果您的 Python 程序没有捕获它,KeyboardInterrupt
则会导致 Python 退出。但是,except KeyboardInterrupt:
块或类似 bare 的东西except:
会阻止此机制实际停止脚本运行。
有时如果KeyboardInterrupt
不工作,您可以发送SIGBREAK
信号代替;在 Windows 上,CTRL+Pause/Break可以由解释器处理而不产生可捕获的KeyboardInterrupt
异常。
但是,这些机制主要仅在 Python 解释器正在运行并响应操作系统事件时才起作用。如果 Python 解释器由于某种原因没有响应,最有效的方法是终止运行解释器的整个操作系统进程。其机制因操作系统而异。
在 Unix 风格的 shell 环境中,您可以按CTRL+挂起当前控制控制台的任何进程Z。一旦您返回 shell 提示符,您可以使用列出挂起的作业,并且可以使用 终止第一个挂起的作业。(如果您想重新开始运行,您可以使用 继续在前台执行作业;请阅读您的 shell 的作业控制手册以获取更多信息。)jobs
kill %1
fg %1
或者,在 Unix 或类 Unix 环境中,您可以找到 Python 进程的 PID(进程标识符)并通过 PID 将其杀死。使用类似ps aux | grep python
查找哪些 Python 进程正在运行,然后用于kill <pid>
发送SIGTERM
信号。
kill
Unix 上的命令SIGTERM
默认发送,Python 程序可以安装信号处理程序以SIGTERM
使用该signal
模块。理论上,任何信号处理程序SIGTERM
都应该优雅地关闭进程。但有时如果进程卡住了(例如,阻塞在不可中断的 IO 睡眠状态),一个SIGTERM
信号就没有效果,因为进程甚至无法唤醒处理它。
要强行终止对信号没有响应的进程,您需要发送SIGKILL
信号,有时称为kill -9
因为9
是常量的数值SIGKILL
。从命令行,您可以使用kill -KILL <pid>
(或kill -9 <pid>
简称)发送 aSIGKILL
并立即停止进程运行。
在 Windows 上,您没有 Unix 系统的进程信号,但您可以使用该TerminateProcess
函数强制终止正在运行的进程。交互地,最简单的方法是打开任务管理器,找到python.exe
与您的程序对应的进程,然后单击“结束进程”按钮。您也可以将该taskkill
命令用于类似目的。
- 要停止 python 脚本,只需按Ctrl+ C。
- 在带有 的脚本中
exit()
,您可以执行此操作。 - 您可以在交互式脚本中执行此操作,只需退出即可。
- 您可以使用
pkill -f name-of-the-python-script
.
使用键盘停止 python 脚本:Ctrl+C
使用代码停止它(这在 Python 3 上对我有用):
import os
os._exit(0)
您还可以使用:
import sys
sys.exit()
或者:
exit()
或者:
raise SystemExit
要停止正在运行的程序,请使用Ctrl+C终止该进程。
要在 python 中以编程方式处理它,请导入sys
模块并使用sys.exit()
要终止程序的位置。
import sys
sys.exit()
Ctrl-Break它比Ctrl-更强大C
当我在 linux 终端上运行 python 脚本时,CTRL+\
工作。(不是CRTL+C或D)
Ctrl+Z应该这样做,如果你被困在 python shell 中。请记住,脚本的实例可以继续在后台运行,因此在 linux 下您必须终止相应的进程。
如果您在 Jupyter Notebook 中,exit() 将杀死内核,所以这不是一个好主意。raise
命令将停止程序。
要停止您的程序,只需按CTRL+D
或exit()
。
Control+D在 Windows 10 上对我有用。此外,放在exit()
最后也可以。
您也可以使用Activity Monitor
来停止 py 进程
Windows 解决方案:Control + C.
Macbook 解决方案:Control (^) + C.
另一种方法是打开一个终端,输入top
,写下PID
你想杀死的进程,然后在终端上输入:kill -9 <pid>
如果您正在使用 Spyder,请使用CTRL+. 并且您将重新启动内核,同时您将停止程序。
按Ctrl+ Alt+Delete和任务管理器将弹出。找到正在运行的 Python 命令,右键单击它,然后单击停止或终止。
尝试使用:
Ctrl+ Fn+S
或者
Ctrl+ Fn+B