Python - 在窗口中获取进程名称,CPU,内存使用情况和峰值内存使用情况

问题描述:

我想获取所有进程名称,CPU,内存使用情况和峰值内存使用情况的列表。我希望我可以使用ctypes。但我很高兴听到其他选择。谢谢你的时间。Python - 在窗口中获取进程名称,CPU,内存使用情况和峰值内存使用情况

+1

你不能做任何比[psutil]更好(http://code.google.com/p/psutil/) – JBernardo 2013-05-01 21:30:27

+0

在windows你最好的选择很可能是性能计数器。 – ren 2014-10-01 08:17:35

您可以使用psutil

例如,获取进程名称的列表:

process_names = [proc.name() for proc in psutil.process_iter()] 

有关CPU使用psutil.cpu_percentpsutil.cpu_times信息。 有关内存使用情况的信息,请使用psutil.virtual_memory

请注意,psutil适用于Linux,OS X,Windows,Solaris和FreeBSD以及Python 2.4到3.3。

+0

可以得到网络统计**每个进程**?我google搜索了大约一个小时的文档,还没有找到任何东西 – chester89 2016-12-19 15:12:32

+0

@ chester89这与这个问题无关。请尝试搜索关于网络使用的问题,然后,如果您还没有找到令人满意的答案,请继续问一个关于它的新问题。无论如何,您应该检查['Process.connections'] (https://pythonhosted.org/psutil/#psutil.Process.connections)。 – Bakuriu 2016-12-19 16:26:59

+0

如何通过这个模块知道它使用的带宽 – 2017-08-25 11:13:10

我喜欢在Windows上使用wmic。你可以从命令行运行它,所以你可以从Python运行它。

from subprocess import Popen,PIPE 
proc = Popen('wmic cpu',stdout=PIPE, stderr=PIPE) 
print str(proc.communicate()) 

使用wmic您可以轻松获得进程,cpu和内存信息。只需使用wmic cpu,wmic processwmic memphysical即可。您还可以使用wmic <alias> get <attribute>过滤掉某些属性。您可以通过wmic /?获得所有命令的列表。希望有所帮助!

您可以在这里WMIC检查出的官方文档:http://technet.microsoft.com/en-us/library/bb742610.aspx

+0

谢谢,这将是伟大的,但它需要以管理员身份运行,有没有一种方法可以在命令行中使用它作为管理员运行它? – Daniel 2013-05-01 21:45:35

这个Python 3.3代码适用于Windows 7,UAC一直向下。

import psutil 
import time 

def processcheck(seekitem): 
    plist = psutil.get_process_list() 
    str1=" ".join(str(x) for x in plist) 
    if seekitem in str1: 
     print ("Requested process is running") 

processcheck("System")