【问题标题】:psutil - getting process name is blankpsutil - 获取进程名称为空
【发布时间】:2014-06-02 09:39:43
【问题描述】:

我正在尝试运行此代码,但没有按名称获取进程列表:

import psutil

PROCNAME = "python.exe"

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

即使进程正在运行,我得到的也一无所有。

【问题讨论】:

  • 这不是一个真正的问题。您应该尝试打印出进程名称并查看发生了什么。如果是错误,请将其报告给 psutil 错误跟踪器。如果有什么你无法解释的,请在 psutil 列表中询问。在这种情况下,我认为进程名称类似于C:\Python27\python.exe(或类似名称)。

标签: python psutil


【解决方案1】:

2.0.0 版的psutil API 发生了重大变化:

https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#200---2014-03-10

proc.name 类属性已替换为 proc.name() 方法。所以你需要适应它。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 谢谢你,而不是文档,它是如何真正起作用的。因为name返回的是object,而_name被延迟填充,通常状态为None。只需 name() 按预期行事。
    【解决方案3】:

    尝试查看psutil所服务的进程名称的确切格式:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 2015-03-07
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 2011-09-09
      相关资源
      最近更新 更多