Python CPU,内存实时获取

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010505968/article/details/51150689

很多时候,我们需要用Python监控机器的CPU,内存,以下是代码。
使用前请安装psutil包

#Python 3.x
#Get CPU and RAM
import psutil
import time


def getCPU():
    return str(psutil.cpu_percent())

def getMem():
    return str(psutil.virtual_memory()).split(",")[3].split("=")[1]
def pd(cpuz,memz):
    if cpuz>55:
        if memz>2589069312:
            return 1,1
        else:
            return 0,1
    else:
        if memz>2589069312:
            return 1,0
        else:
            return 0,0


def MainRun():
    while True:
        a=getCPU()
        b=getMem()
        p1,p2=pd(float(a),float(b))

        if p1==1:
            memr="过高"
        else:
            memr="正常"
        if p2==1:
            cpur="过高"
        else:
            cpur="正常"
        print("CPU:%s   RAM:%s   [CPU:%s RAM:%s]"%(a,b,cpur,memr))

        time.sleep(1)
MainRun()

其中我把CPU的‘过高’设定在55%以上,内存是根据我机器的6G内存设定的,请根据自己的需要调整,特别是内存

#######代码分析#######

return str(psutil.cpu_percent())

这个函数将会返回的是CPU的百分比(类型为String



return str(psutil.virtual_memory()).split(",")[3].split("=")[1]

首先看其中的psutil.virtual_memory(),他将会返回一个类似这样的列表:

svmem(total=6017671168, available=3425718272, percent=43.1, used=2591952896, free=3425718272)

.split(",")的作用就是用”,”切分字符串并返回一个列表,他大概是这样的

['svmem(total=6017671168', ' available=3380580352', ' percent=43.8', ' used=2637090816', ' free=3380580352)']

[3]的作用是提取其中的第四个元素,也就是used(已使用内存)

随后再一次的.split("=")
不过注意,这次使用”=”,返回类似这样

[' used', '2620174336']

显然,我们要提取的是’2620174336’,也就是第二个元素,那么直接用[1]返回’2620174336’


Update


2016-04-14

本文发布


2016-04-15

目前正在加入内存百分比判别的功能

展开阅读全文

没有更多推荐了,返回首页