Linux下使用python调用top命令获得CPU利用率


Posted in Python onMarch 10, 2015

本文定位:想通过python调用top命令获取cpu使用率但暂时没有思路的情况。
如果单纯为了获得cpu的利用率,通过top命令重定向可以轻松实现,命令如下:

top -bi > cpuHistory.log


top -bi | tee  cpuHistory.log

这个就不解释了,不懂的朋友查询下top的帮助文档。这里要实现的是通过python调用top命令,并获得cpu的利用率信息。
用过popen的朋友很快就能想到类似如下的代码(这个是我第一次写的代码,*_*):
#! /usr/bin/python
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”
代码如下:

#! /usr/bin/python

'''

   File      : cpuRate.py

   Author    : Mike

   E-Mail    : Mike_Zhang@live.com

 '''

import os,time
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)

执行效果如下:

$ ./cpuRate.py 

1328109437 Cpu(s): 10.0%us, 20.0%sy,  0.0%ni, 70.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

1328109441 Cpu(s):  0.0%us, 16.7%sy,  0.0%ni, 83.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

1328109444 Cpu(s):  0.0%us, 16.7%sy,  0.0%ni, 83.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

1328109447 Cpu(s): 12.5%us, 12.5%sy,  0.0%ni, 75.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

好,就这些了,希望对你有帮助。

Python 相关文章推荐
python抓取百度首页的方法
May 19 Python
Python中splitlines()方法的使用简介
May 20 Python
qpython3 读取安卓lastpass Cookies
Jun 19 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
Python选择网卡发包及接收数据包
Apr 04 Python
python做反被爬保护的方法
Jul 01 Python
python画图--输出指定像素点的颜色值方法
Jul 03 Python
wxPython多个窗口的基本结构
Nov 19 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
Python AutoCAD 系统设置的实现方法
Apr 01 Python
Python爬虫之爬取淘女郎照片示例详解
Jul 28 Python
Python获取DLL和EXE文件版本号的方法
Mar 10 #Python
Python接收Gmail新邮件并发送到gtalk的方法
Mar 10 #Python
Python创建xml的方法
Mar 10 #Python
Python实现生成简单的Makefile文件代码示例
Mar 10 #Python
Python和GO语言实现的消息摘要算法示例
Mar 10 #Python
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 #Python
Python脚本实现代码行数统计代码分享
Mar 10 #Python
You might like
做一个有下拉功能的留言版
2006/10/09 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
对于Python中RawString的理解介绍
2016/07/07 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
Python中格式化字符串的四种实现
2020/05/26 Python
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
如何用PHP实现邮件发送
2012/12/26 面试题
教育课题研究自我鉴定范文
2013/12/28 职场文书
交通安全寄语大全
2014/04/08 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
2014年终个人工作总结
2014/11/07 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
爱国主题班会教案
2015/08/14 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
redis protocol通信协议及使用详解
2022/07/15 Redis