很多時候,我們需要用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(",")[].split("=")[]
def pd(cpuz,memz):
if cpuz>:
if memz>:
return ,
else:
return ,
else:
if memz>:
return ,
else:
return ,
def MainRun():
while True:
a=getCPU()
b=getMem()
p1,p2=pd(float(a),float(b))
if p1==:
memr="過高"
else:
memr="正常"
if p2==:
cpur="過高"
else:
cpur="正常"
print("CPU:%s RAM:%s [CPU:%s RAM:%s]"%(a,b,cpur,memr))
time.sleep()
MainRun()
其中我把CPU的‘過高’設定在55%以上,記憶體是根據我機器的6G記憶體設定的,請根據自己的需要調整,特别是記憶體
#######代碼分析#######
return str(psutil.cpu_percent())
這個函數将會傳回的是CPU的百分比(類型為String)
return str(psutil.virtual_memory()).split(",")[].split("=")[]
首先看其中的
psutil.virtual_memory()
,他将會傳回一個類似這樣的清單:
.split(",")
的作用就是用”,”切分字元串并傳回一個清單,他大概是這樣的
['svmem(total=', ' available=', ' percent=', ' used=', ' free=)']
[3]的作用是提取其中的第四個元素,也就是used(已使用記憶體)
随後再一次的
.split("=")
不過注意,這次使用”=”,傳回類似這樣
[' used', '']
顯然,我們要提取的是’2620174336’,也就是第二個元素,那麼直接用[1]傳回’2620174336’
Update
2016-04-14
本文釋出
2016-04-15
目前正在加入記憶體百分比判别的功能