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