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之有容乃大的list(3)
Sep 15 Python
Python显示进度条的方法
Sep 20 Python
Python re模块介绍
Nov 30 Python
python中常用检测字符串相关函数汇总
Apr 15 Python
总结Python编程中函数的使用要点
Mar 20 Python
Python基于matplotlib绘制栈式直方图的方法示例
Aug 09 Python
matplotlib绘制动画代码示例
Jan 02 Python
使用python判断你是青少年还是老年人
Nov 29 Python
Python随机函数库random的使用方法详解
Aug 21 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
keras-siamese用自己的数据集实现详解
Jun 10 Python
Python-openCV开运算实例
Jul 05 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+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
php空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
php类中private属性继承问题分析
2012/11/01 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
列表内容的选择
2006/06/30 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
详解Python中的Descriptor描述符类
2016/06/14 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
Python List cmp()知识点总结
2019/02/18 Python
python实现图片转字符小工具
2019/04/30 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
matplotlib quiver箭图绘制案例
2020/04/17 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
快速创建python 虚拟环境
2020/11/28 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
台湾最大网路书店:博客来
2018/03/18 全球购物
高中地理教学反思
2014/01/29 职场文书
对公司合理化的建议书
2014/03/12 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python
python基于turtle绘制几何图形
2021/06/15 Python
python tqdm用法及实例详解
2021/06/16 Python