我尝试运行这段代码,但是没有按名称获取进程列表:
import psutil
PROCNAME = "python.exe"
for proc in psutil.process_iter():
if proc.name == PROCNAME:
print proc
虽然进程正在运行,但我什么也没得到。
proc.name
更改为 proc.name()
可以解决这个问题。name
返回对象,而 _name
带有延迟填充,并且通常具有状态 None
。只有 name()
才能按预期工作。 - Arkadypsutil
API在版本2.0.0中发生了重大变化:
https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#200---2014-03-10
proc.name
类属性被proc.name()
方法所取代,因此您需要进行适应。
尝试查看psutil
提供的进程名称格式:
import psutil
for proc in psutil.process_iter():
print proc.name
C:\Python27\python.exe
(或类似的东西)。 - Noufal Ibrahim