Python CPU,記憶體實時獲取
阿新 • • 發佈:2019-01-25
很多時候,我們需要用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
目前正在加入記憶體百分比判別的功能