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连接SQLServer2000的方法详解
Apr 19 Python
基于并发服务器几种实现方法(总结)
Dec 29 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
Apr 17 Python
python 获取文件下所有文件或目录os.walk()的实例
Apr 23 Python
python实现Virginia无密钥解密
Mar 20 Python
python2.7实现复制大量文件及文件夹资料
Aug 31 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
Python reversed函数及使用方法解析
Mar 17 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 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网页标题中文乱码的有效解决方法
2014/03/05 PHP
PHP图形操作之Jpgraph学习笔记
2015/12/25 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
2011/04/06 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
微信、QQ、微博、Safari中使用js唤起App
2018/01/24 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
Python采集腾讯新闻实例
2014/07/10 Python
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
python调用OpenCV实现人脸识别功能
2018/05/25 Python
keras多显卡训练方式
2020/06/10 Python
python中upper是做什么用的
2020/07/20 Python
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
入股协议书范本
2014/04/14 职场文书
计生工作先进事迹
2014/08/15 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
司考复习计划
2015/01/19 职场文书
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL