在python中停止子进程

在python中停止子进程,python,python-3.x,process,subprocess,libraries,Python,Python 3.x,Process,Subprocess,Libraries,我有几个使用子流程库同时运行的python脚本。但是,我希望能够在事件发生时停止所有进程,例如按下按钮。我试过几种方法,但似乎都不管用。 我正在使用Windows和Python 3.8.0 下面是我打开所有进程的代码 import subprocess subprocess.Popen("python Program1.py") subprocess.Popen("python Program2.py") subprocess.Popen("python Program3.py") subpro

我有几个使用子流程库同时运行的python脚本。但是,我希望能够在事件发生时停止所有进程,例如按下按钮。我试过几种方法,但似乎都不管用。 我正在使用Windows和Python 3.8.0

下面是我打开所有进程的代码

import subprocess
subprocess.Popen("python Program1.py")
subprocess.Popen("python Program2.py")
subprocess.Popen("python Program3.py")
subprocess.Popen("python Program4.py")
subprocess.Popen("python Program5.py")
subprocess.Popen("python Program6.py")
subprocess.Popen("python Program7.py")
我不知道如何使用子流程库或任何其他库结束流程。 我还尝试了以下方法
proc1.kill()

p.terminate()


在上面的一个例子中,我尝试了将
放入Exception,e:
pkill(“PROGRAM.py”)
中,但这似乎也不起作用。

您可以跟踪启动的进程ID:

import os
import subprocess

processes = []
for x in range(0,9):
    p = subprocess.Popen("python Program.py %s" % x)
    processes.append(p.pid)  # keep the processIds!

for p in processes:
    os.system('taskkill /F /PID ' + p)

您必须将进程保存到一个变量中,以便稍后终止或终止它。对不起,我不太明白,我该怎么做呢?
import os
import subprocess

processes = []
for x in range(0,9):
    p = subprocess.Popen("python Program.py %s" % x)
    processes.append(p.pid)  # keep the processIds!

for p in processes:
    os.system('taskkill /F /PID ' + p)