Python - 杀死函数中的多个进程

问题描述 投票:0回答:1

我是python的新手,并且有以下代码可以杀死进程,但它并不优雅。我必须定义流程并在多行上搜索它。

我正在寻找创建一个函数或方法来分配我添加到此列表中的任何进程,并在不查找每个进程时终止所有进程。 (似乎多余)

比如分配我添加的任何新PROCESS,在方法ALL_PROC中,然后for循环可以迭代它,查找ALL_PROC中包含的任何和所有进程

对不起,如果这是显而易见的,这是我的第一个堆栈问题:)

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()
python process kill psutil
1个回答
0
投票

使用一组名称,然后您可以使用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'}

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

© www.soinside.com 2019 - 2024. All rights reserved.