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 thread 并发且顺序运行示例
Apr 09 Python
python模拟新浪微博登陆功能(新浪微博爬虫)
Dec 24 Python
Python数据类型详解(一)字符串
May 08 Python
Python深入06——python的内存管理详解
Dec 07 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
Mar 12 Python
Python使用PyCrypto实现AES加密功能示例
May 22 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
python添加菜单图文讲解
Jun 04 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
Python yield的用法实例分析
Mar 06 Python
如何以Winsows Service方式运行JupyterLab
Aug 30 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 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
PHP中PDO基础教程 入门级
2011/09/04 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
javascript Math.random()随机数函数
2009/11/04 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
python中urllib模块用法实例详解
2014/11/19 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
详解python分布式进程
2018/10/08 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
解决python gdal投影坐标系转换的问题
2020/01/17 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
申请任职学生会干部自荐书范文
2014/02/13 职场文书
陈欧广告词
2014/03/14 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
教师听课评语大全
2014/12/31 职场文书
React Hook用法示例详解(6个常见hook)
2021/04/28 Javascript
Oracle表空间与权限的深入讲解
2021/11/17 Oracle