创建进程字典
Creating Process Dictionary
我的目标:我需要创建一个函数来检索每个进程的 PID 和名称,并将它们 return 放入字典中。我将把它上传到 Django 并且真的需要两个不同的词典。 1 包含每个 运行 进程名称和 PID,另一个包含所有已安装的名称和 PID。到目前为止,我可以让它很好地打印字典,但不能正确打印 return。也许我叫错了。我对此比较陌生。
import psutil
def pid_name():
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['pid', 'name'])
except psutil.NoSuchProcess:
pass
else:
return pinfo
如果您将子 "return" 用于打印,则 dict 可以正常打印。我如何从这里调用该命令?它甚至 return 正确吗?
您只 return 获取第一个结果,因为您的 return 语句在 for
块内。由于您不能创建具有重复键的字典,因此您应该 return 一个字典列表。尝试对 return 所有进程进行列表理解:
import psutil
def pid_name():
return [proc.as_dict(attrs=['pid', 'name']) for proc in psutil.process_iter()]
更新:
如果您尝试创建一个以 pid
s 作为键并以 name
s 作为值的字典,则更容易:
def pid_name():
return {proc.pid: proc.name() for proc in psutil.process_iter()}
我的目标:我需要创建一个函数来检索每个进程的 PID 和名称,并将它们 return 放入字典中。我将把它上传到 Django 并且真的需要两个不同的词典。 1 包含每个 运行 进程名称和 PID,另一个包含所有已安装的名称和 PID。到目前为止,我可以让它很好地打印字典,但不能正确打印 return。也许我叫错了。我对此比较陌生。
import psutil
def pid_name():
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['pid', 'name'])
except psutil.NoSuchProcess:
pass
else:
return pinfo
如果您将子 "return" 用于打印,则 dict 可以正常打印。我如何从这里调用该命令?它甚至 return 正确吗?
您只 return 获取第一个结果,因为您的 return 语句在 for
块内。由于您不能创建具有重复键的字典,因此您应该 return 一个字典列表。尝试对 return 所有进程进行列表理解:
import psutil
def pid_name():
return [proc.as_dict(attrs=['pid', 'name']) for proc in psutil.process_iter()]
更新:
如果您尝试创建一个以 pid
s 作为键并以 name
s 作为值的字典,则更容易:
def pid_name():
return {proc.pid: proc.name() for proc in psutil.process_iter()}