背景:
我有一个运行的python脚本。它包含许多操作系统。系统(“./executablene”)
在循环中调用。
如果我按ctrlC,它只是停止执行当前的./officutableNane
并传递到下一个。
问题:
如何停止整个脚本的执行,而不仅仅是当前调用的可执行文件的执行?
请注意,我已经仔细阅读了这里的问题/答案,但是即使使用die
,我也可以杀死可执行文件,但不能杀死整个脚本(我无法使用top
找到)。
我必须停止脚本(不重新启动系统)的唯一方法是继续在循环中按ctrl C,直到所有测试完成。
这个问题的另一个解决方案(作者@Quillan Kaseman)比我找到的解决方案要优雅得多。当我按下CtrlZ而不是CtrlC时,我所有的问题都解决了。
事实上,我不知道为什么使用Z
有效,而使用C
无效。(稍后我将尝试查找一些详细信息)。
可以使用子进程和信号处理程序来完成此操作。您还可以使用子进程
通过子进程接收和发送信息。PIPE
,您可以在留档中阅读更多信息。
以下是您希望做什么的基本示例:
import subprocess
import signal
import sys
def signal_handler(sig, frame):
print("You pressed Ctrl+C, stopping.")
print("Signal: {}".format(sig))
print("Frame: {}".format(frame))
sys.exit(123)
# Set up signal handler
signal.signal(signal.SIGINT, signal_handler)
print("Starting.")
while True:
cmd = ['sleep', '10']
p = subprocess.Popen(cmd)
p.wait()
if p.returncode != 0:
print("Command failed.")
else:
print("Command worked.")
问题内容: 我用IDLE编写了一个程序来标记文本文件,然后开始标记349个文本文件!我该如何阻止它?如何停止正在运行的Python程序? 问题答案: 要停止程序,只需按 + 。
我写了一个程序在IDLE令牌化文本文件,它开始令牌349文本文件!我怎样才能阻止它?如何停止正在运行的Python程序?
我为浏览器游戏制作了脚本。在这个游戏中,我站着不动,我的脚本在某些地方点击bksononechno,但我需要的是,如果我点击字母,这个脚本将自杀,而不是试图关闭浏览器及其在浏览器中的选项卡和类似的东西。 抱歉出错了。
问题内容: 我知道中的命令会尽早停止脚本。 如何在Python中执行此操作? 问题答案: sys模块文档中的详细信息: 从Python退出。这是通过引发SystemExit异常来实现的,因此可以执行 try语句的finally子句指定的清除操作,并且有可能在外部级别拦截出口尝试。 可选参数arg可以是给出退出状态的整数(默认为零),也可以是其他类型的对象。如果它是整数,则shell等将零视为“成功
是否有可能停止或中断在事件(如按下按钮)上运行python脚本?有点像中断。 谢谢
问题内容: 我写了Python脚本来处理大量的大文本文件,并且可能 要花费很多时间 。有时,需要停止正在运行的脚本并在以后恢复它。停止脚本的可能原因是程序崩溃,磁盘空间不足或需要执行此操作的其他原因。我想为脚本实现一种“停止/恢复”机制。 在 车站 :脚本退出和保存其当前状态。 在 简历 :剧本开始,但是从最新的保存状态持续 我将使用 pickle 和 信号 模块来实现它。 我将很高兴听到如何以p