我写了一个程序在IDLE令牌化文本文件,它开始令牌349文本文件!我怎样才能阻止它?如何停止正在运行的Python程序?
如果您的程序在交互式控制台上运行,按下CTRLC将在主线程上引发KeyboardInter0009
异常。
如果Python程序没有捕获到它,则键盘中断将导致Python退出。但是,一个
除外键盘中断:
块,或者类似于一个裸除外:
的块,将阻止此机制实际停止脚本运行。
有时,如果
键盘中断
不工作,您可以发送SIGBREAK
信号代替;在Windows上,CTRL暂停/中断可以由解释器处理,而不会产生可捕获的键盘中断
异常。
然而,这些机制主要只在Python解释器正在运行并响应操作系统事件时才起作用。如果Python解释器由于某种原因没有响应,最有效的方法是终止运行解释器的整个操作系统进程。其机制因操作系统而异。
在Unix风格的shell环境中,可以按CTRLZ暂停当前控制控制台的任何进程。返回shell提示后,可以使用
作业
列出挂起的作业,并使用kill%1
终止第一个挂起的作业。(如果要重新启动它,可以使用fg%1
在前台继续作业;有关详细信息,请阅读shell的作业控制手册。)
或者,在Unix或类似Unix的环境中,您可以找到Python进程的PID(进程标识符),并通过PID杀死它。使用类似于
ps aux | grep python
的方法查找正在运行的python进程,然后使用kill
Unix上的
kill
命令默认发送SIGTERM
,Python程序可以使用signal
模块为SIGTERM
安装信号处理程序。理论上,SIGTERM
的任何信号处理程序都应该优雅地关闭进程。但有时,如果进程被卡住(例如,在不间断IO睡眠状态下被阻塞),则SIGTERM
信号无效,因为进程甚至无法唤醒来处理它。
要强制终止不响应信号的进程,需要发送
SIGKILL
信号,有时称为kill-9
,因为9
是SIGKILL
常量的数值。在命令行中,可以使用kill-kill
在Windows上,您没有进程信号的Unix系统,但是您可以通过使用
TerminateProcess
函数强制终止正在运行的进程。交互式地,最简单的方法是打开任务管理器,找到与您的程序相对应的python.exe
进程,然后单击“结束进程”按钮。您也可以使用taskkill
命令来实现类似的目的。
要停止您的程序,只需按控制键。
如果在代码中使用出口()
函数,也可以这样做。更理想的是,您可以执行sys.exit()
.sys.exit()
,这可能会终止Python,即使您正在通过多重处理
包并行运行。
注意:为了使用sys。退出()
,您必须导入它:导入系统
问题内容: 我用IDLE编写了一个程序来标记文本文件,然后开始标记349个文本文件!我该如何阻止它?如何停止正在运行的Python程序? 问题答案: 要停止程序,只需按 + 。
背景: 我有一个运行的python脚本。它包含许多在循环中调用。 如果我按ctrlC,它只是停止执行当前的并传递到下一个。 问题: 如何停止整个脚本的执行,而不仅仅是当前调用的可执行文件的执行? 请注意,我已经仔细阅读了这里的问题/答案,但是即使使用,我也可以杀死可执行文件,但不能杀死整个脚本(我无法使用找到)。 我必须停止脚本(不重新启动系统)的唯一方法是继续在循环中按ctrl C,直到所有测试
我为浏览器游戏制作了脚本。在这个游戏中,我站着不动,我的脚本在某些地方点击bksononechno,但我需要的是,如果我点击字母,这个脚本将自杀,而不是试图关闭浏览器及其在浏览器中的选项卡和类似的东西。 抱歉出错了。
问题内容: 我知道中的命令会尽早停止脚本。 如何在Python中执行此操作? 问题答案: sys模块文档中的详细信息: 从Python退出。这是通过引发SystemExit异常来实现的,因此可以执行 try语句的finally子句指定的清除操作,并且有可能在外部级别拦截出口尝试。 可选参数arg可以是给出退出状态的整数(默认为零),也可以是其他类型的对象。如果它是整数,则shell等将零视为“成功
问题内容: 我有一个长期运行的python脚本,希望能够从另一个python脚本结束。理想情况下,我正在寻找一种将进程ID设置为第一个脚本并能够从第二个脚本通过该ID查看其是否正在运行的方法。此外,我希望能够终止该长时间运行的过程。 有没有很酷的捷径可以实现这一目标? 另外,我在Windows环境中工作。 我最近在这里找到了另一种答案:检查python脚本是否正在运行 问题答案: 您可以通过以下方
是否有可能停止或中断在事件(如按下按钮)上运行python脚本?有点像中断。 谢谢