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 学习笔记
Dec 27 Python
Python深入学习之上下文管理器
Aug 31 Python
windows下添加Python环境变量的方法汇总
May 14 Python
Python创建一个空的dataframe,并循环赋值的方法
Nov 08 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
解决Pandas的DataFrame输出截断和省略的问题
Feb 08 Python
Python基于opencv调用摄像头获取个人图片的实现方法
Feb 21 Python
Python坐标线性插值应用实现
Nov 13 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
python重要函数eval多种用法解析
Jan 14 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
Django 权限管理(permissions)与用户组(group)详解
Nov 30 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循环输出数据库内容的代码
2008/05/24 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
accesskey 提交
2006/06/26 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
2013/01/27 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
python动态网页批量爬取
2016/02/14 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
python读取xlsx的方法
2018/12/25 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
秘书专业自荐信范文
2013/12/26 职场文书
残疾人小组计划书
2014/04/27 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
实验心得体会
2014/09/05 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript