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

时间:2013-05-01 21:06:32

标签: python windows memory process cpu

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

3 个答案:

答案 0 :(得分:34)

您可以使用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。

答案 1 :(得分:3)

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

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

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

您可以在此处查看WMIC的官方文档:http://technet.microsoft.com/en-us/library/bb742610.aspx

答案 2 :(得分:1)

这个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")