1. 程式人生 > >Python CPU,記憶體實時獲取

Python CPU,記憶體實時獲取

很多時候,我們需要用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

目前正在加入記憶體百分比判別的功能