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中split方法用法分析
Apr 17 Python
Python常用内置模块之xml模块(详解)
May 23 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
pandas object格式转float64格式的方法
Apr 10 Python
TensorFlow 滑动平均的示例代码
Jun 19 Python
python实现倒计时小工具
Jul 29 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
python中对_init_的理解及实例解析
Oct 11 Python
Python的几种主动结束程序方式
Nov 22 Python
python glom模块的使用简介
Apr 13 Python
Python语言规范之Pylint的详细用法
Jun 24 Python
python数字图像处理:图像的绘制
Jun 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
PHP中的超全局变量
2006/10/09 PHP
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
php eval函数用法总结
2012/10/31 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
javascript实现C语言经典程序题
2015/11/29 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
基本DOM节点操作
2017/01/17 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
2020/01/02 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python Socket编程详细介绍
2017/03/23 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
区域销售经理职责
2013/12/22 职场文书
表彰大会策划方案
2014/05/13 职场文书
新品发布会策划方案
2014/06/08 职场文书
MySQL七种JOIN类型小结
2021/10/24 MySQL
Python时间操作之pytz模块使用详解
2022/06/14 Python