【发布时间】:2016-11-04 17:10:15
【问题描述】:
下面的示例代码检索所有正在运行的过程并打印它们。 他们是在第三个示例here 和最后一个示例here 之后编写的。问题是我无法弄清楚为什么只有第一个检索按需要排序的进程。
我认为这与lambda 函数构造有关。但是正确运行的示例,第一个示例,似乎将 for 语句的本地 p 变量与 p.dict 字典混合在一起,让我卡住了。
第一个样本:
import psutil
procs = []
for p in psutil.process_iter():
try:
p.dict = p.as_dict(['pid', 'name'])
except psutil.NoSuchProcess:
pass
else:
procs.append(p)
processes = sorted(procs, key=lambda p: p.dict['name'], reverse=False)
print(processes)
第二个样本:
import psutil
procs = []
for proc in psutil.process_iter():
try:
procs_dic = proc.as_dict(['pid', 'name'])
except psutil.NoSuchProcess:
pass
else:
procs.append(proc)
processes = sorted(procs, key=lambda ordem: procs_dic['name'], reverse=False)
print(processes)
【问题讨论】:
标签: python windows python-3.x lambda psutil