152

我在 IDLE 中编写了一个程序来标记文本文件,它开始标记 349 个文本文件!我怎样才能阻止它?如何停止正在运行的 Python 程序?

4

17 回答 17

183

如果您exit()在代码中使用该函数,也可以这样做。更理想的是,您可以这样做sys.exit()。即使您通过包并行运行sys.exit(),它也可能终止 Python。multiprocessing

注意:为了使用sys.exit(),您必须导入它:import sys

于 2015-12-01T20:27:47.283 回答
74

To stop your program, just press Control + C.

于 2013-11-05T04:49:43.437 回答
58

如果您的程序在交互式控制台上运行,按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 的作业控制手册以获取更多信息。)jobskill %1fg %1

或者,在 Unix 或类 Unix 环境中,您可以找到 Python 进程的 PID(进程标识符)并通过 PID 将其杀死。使用类似ps aux | grep python查找哪些 Python 进程正在运行,然后用于kill <pid>发送SIGTERM信号。

killUnix 上的命令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命令用于类似目的。

于 2018-11-08T15:44:51.900 回答
54
  • 要停止 python 脚本,只需按Ctrl+ C
  • 在带有 的脚本中exit(),您可以执行此操作。
  • 您可以在交互式脚本中执行此操作,只需退出即可。
  • 您可以使用pkill -f name-of-the-python-script.
于 2017-06-27T17:29:56.213 回答
49

使用键盘停止 python 脚本:Ctrl+C

使用代码停止它(这在 Python 3 上对我有用):

import os
os._exit(0)

您还可以使用:

import sys
sys.exit()

或者:

exit()

或者:

raise SystemExit
于 2019-10-17T07:13:15.573 回答
48

要停止正在运行的程序,请使用Ctrl+C终止该进程。

要在 python 中以编程方式处理它,请导入sys模块并使用sys.exit()要终止程序的位置。

import sys
sys.exit()
于 2018-08-25T18:33:56.993 回答
32

Ctrl-Break它比Ctrl-更强大C

于 2017-10-26T22:18:34.147 回答
8

当我在 linux 终端上运行 python 脚本时,CTRL+\工作。(不是CRTL+CD

于 2018-11-08T14:55:02.703 回答
8

Ctrl+Z应该这样做,如果你被困在 python shell 中。请记住,脚本的实例可以继续在后台运行,因此在 linux 下您必须终止相应的进程。

于 2018-08-20T14:20:41.493 回答
7

如果您在 Jupyter Notebook 中,exit() 将杀死内核,所以这不是一个好主意。raise命令将停止程序。

于 2019-12-31T04:29:15.510 回答
5

要停止您的程序,只需按CTRL+D

exit()

于 2018-07-24T06:20:57.713 回答
4

Control+D在 Windows 10 上对我有用。此外,放在exit()最后也可以。

于 2018-12-31T06:40:02.027 回答
4

您也可以使用Activity Monitor来停止 py 进程

于 2015-11-06T05:48:17.643 回答
3

Windows 解决方案:Control + C.

Macbook 解决方案:Control (^) + C.

另一种方法是打开一个终端,输入top,写下PID你想杀死的进程,然后在终端上输入:kill -9 <pid>

于 2020-05-19T08:09:47.717 回答
3

如果您正在使用 Spyder,请使用CTRL+. 并且您将重新启动内核,同时您将停止程序。

于 2019-03-08T21:11:52.023 回答
2

Ctrl+ Alt+Delete和任务管理器将弹出。找到正在运行的 Python 命令,右键单击它,然后单击停止或终止。

于 2018-10-07T02:01:38.240 回答
2

尝试使用:

Ctrl+ Fn+S

或者

Ctrl+ Fn+B

于 2021-05-29T12:06:09.887 回答