psutil - 获取进程名称为空

4

我尝试运行这段代码,但是没有按名称获取进程列表:

import psutil

PROCNAME = "python.exe"

for proc in psutil.process_iter():
    if proc.name == PROCNAME:
        print proc

虽然进程正在运行,但我什么也没得到。


这并不是一个问题。你应该尝试打印出进程名称,看看发生了什么。如果这是一个 bug,请报告给 psutil bug 跟踪器。如果有一些你无法解释的东西,请在 psutil 列表上询问。在这种情况下,我认为进程名称类似于 C:\Python27\python.exe(或类似的东西)。 - Noufal Ibrahim
3个回答

6
我遇到了同样的问题。如果其他人也遇到类似的问题,将 proc.name 更改为 proc.name() 可以解决这个问题。

1
谢谢,不需要文档,只需知道它的实际工作原理。 因为 name 返回对象,而 _name 带有延迟填充,并且通常具有状态 None。只有 name() 才能按预期工作。 - Arkady

3

-1

尝试查看psutil提供的进程名称格式:

import psutil

for proc in psutil.process_iter():
    print proc.name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接