Python - 在一个函数中杀死多个进程

Python - kill multiple processes in a function

我是 python 的新手,使用以下代码来终止进程, 但它并不优雅。 我必须定义流程并在多行中搜索它。

我正在寻求创建一个函数或一种方法来分配我添加到此列表中的任何进程,并在不寻找每个进程的情况下杀死所有进程。 (这似乎是多余的)

类似于将我添加的任何新进程分配到方法 ALL_PROC 中,然后 for 循环可以对其进行迭代,查找 ALL_PROC[=12 中包含的所有进程=]

抱歉,如果这很明显,这是我的第一个堆栈问题:)

Process1 = "pro1.exe"
Process2 = "pro2.exe"
Process3 = "pro3.exe"

for proc in psutil.process_iter():  
    if proc.name() == Process1:
       proc.kill()
    if proc.name() == Process2:
       proc.kill()
    if proc.name() == Process3:
       proc.kill()

使用一组名称,然后您可以使用 in 运算符检查是否存在:

processes = {'pro1.exe', 'pro2.exe', 'pro3.exe'}
for proc in psutil.process_iter():  
    if proc.name() in processes:
       proc.kill()

如果你想定义一组第一个 n 'pro[n].exe' 字符串,那么你可以使用带有 set() 构造函数的生成器表达式:

processes = set(f'pro{i}.exe' for i in range(1,n))

其中,例如n = 10,给出:

{'pro6.exe', 'pro8.exe', 'pro9.exe', 'pro2.exe', 'pro4.exe', 'pro3.exe', 'pro1.exe', 'pro7.exe', 'pro5.exe'}

注意集合没有顺序,因为它没有索引的概念。