我是python的新手,可以使用以下代码来杀死进程, 但这并不优雅。 我必须定义过程并在多行中进行搜索。
我希望创建一个函数或一种方法来分配添加到此列表的任何进程,并在不寻找每个进程的情况下将其全部杀死。 (似乎多余)
类似于分配我添加的任何新过程,将其放入方法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()
答案 0 :(得分: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'}
请注意,集合没有顺序,因为它没有索引的概念。