我正在编写一个Python脚本,需要使用偶尔陷入无限循环的可执行文件。卡在此循环中时,可执行文件会将相同的文本行吐出到标准输出。我打算捕获,一旦我这样做,杀死可执行文件。当我手动运行此脚本时,我可以使用 CTRL C 。
以编程方式从Python脚本中删除可执行文件的正确方法是什么?我使用的是Python 2.7,但我对3.x解决方案也很好奇。我正在使用os.system()调用。
答案 0 :(得分:1)
您可以尝试捕获SIGINT
关闭所有subprocess
实例,然后执行系统退出。
#!/usr/bin/env python
import signal
import sys
import subprocess
p = subprocess.Popen(...)
# define how to handle CTRL+C
def signal_handler(signal, frame):
print('You pressed Ctrl+C!')
p.kill()
sys.exit(0)
# Tell it to handle CTRL+C
signal.signal(signal.SIGINT, signal_handler)