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