本文定位:想通過python調用top命令獲取cpu使用率但暫時沒有思路的情況。
如果單純為了獲得cpu的利用率,通過top命令重定向可以輕松實現,命令如下:
import os,time
time2sleep = 1.5
while True:
print os.popen('top -bi -n 1').read().split('/n')[2]
time.sleep(time2sleep)
原理看起來沒錯,可是跑起來就出問題了:cpu的idle值一直不變!!!
原因在于執行的命令“top -bi -n 1”:單獨執行這個命令,你會發現輸出結果中cpu的idle值就是一直不變的。
所以不能這樣寫……
在終端執行“top -bi -n 2”命令,你會發現第二個值每次都在變化,這個就是我們想要結果。
考慮到時間問題,命令這樣寫會更好:“top -bi -n 2 -d 0.02”
代碼如下:
time2sleep = 2.5
while True:
print int(time.time()),
print os.popen('top -bi -n 2 -d 0.02').read().split('/n/n/n')[1].split('/n')[2]
time.sleep(time2sleep)
執行效果如下:
好,就這些了,希望對你有幫助。
新聞熱點
疑難解答
圖片精選