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二分法搜索算法实例分析
May 11 Python
Python中Class类用法实例分析
Nov 12 Python
python的变量与赋值详细分析
Nov 08 Python
Python爬虫中urllib库的进阶学习
Jan 05 Python
Python之多线程爬虫抓取网页图片的示例代码
Jan 10 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
pytorch + visdom CNN处理自建图片数据集的方法
Jun 04 Python
python实现微信自动回复机器人功能
Jul 11 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
深入学习python多线程与GIL
Aug 26 Python
Python实现生成bmp图像的方法
Jun 13 Python
一小时学会TensorFlow2之基本操作2实例代码
Sep 04 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 使用curl提交json格式数据
2013/06/29 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
JS解析XML实例分析
2015/01/30 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
countUp.js实现数字动态变化效果
2019/10/17 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
使用Python3编写抓取网页和只抓网页图片的脚本
2015/08/20 Python
python使用psutil模块获取系统状态
2016/08/27 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
简单实现python聊天程序
2018/04/01 Python
python实现顺序表的简单代码
2018/09/28 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
python离线安装外部依赖包的实现
2020/02/13 Python
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
驻村工作先进事迹
2014/08/14 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript