本文定位:想通过python调用top命令获取cpu使用率但暂时没有思路的情况。

测试环境:CentOS 6.0_x64 + Python 2.6

如果单纯为了获得cpu的利用率,通过top命令重定向可以轻松实现,命令如下:

top -bi > cpuHistory.log或top -bi | tee  cpuHistory.log

这个就不解释了,不懂的朋友查询下top的帮助文档。这里要实现的是通过python调用top命令,并获得cpu的利用率信息。
用过popen的朋友很快就能想到类似如下的代码(这个是我第一次写的代码,*_*):

1 #! /usr/bin/python2 3 import os,time4 5 time2sleep = 1.56 while True:7     print os.popen('top -bi -n 1').read().split('\n')[2]8     time.sleep(time2sleep)

原理看起来没错,可是跑起来就出问题了:cpu的idle值一直不变!!!
原因在于执行的命令“top -bi -n 1”:单独执行这个命令,你会发现输出结果中cpu的idle值就是一直不变的。
所以不能这样写……
在终端执行“top -bi -n 2”命令,你会发现第二个值每次都在变化,这个就是我们想要结果。
考虑到时间问题,命令这样写会更好:“top -bi -n 2 -d 0.02”
代码如下:

 1 #! /usr/bin/python 2 ''' 3    File      : cpuRate.py 4    Author    : Mike 5    E-Mail    : Mike_Zhang@live.com 6  ''' 7 import os,time 8  9 time2sleep = 2.510 while True:11     print int(time.time()),12     print os.popen('top -bi -n 2 -d 0.02').read().split('\n\n\n')[1].split('\n')[2]13     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%st1328109441 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%st1328109444 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%st1328109447 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

好,就这些了,希望对你有帮助。

转载于:https://www.cnblogs.com/MikeZhang/archive/2012/02/01/cpuRatePythonTop.html

获得CPU利用率(python调用top命令实现)相关推荐

  1. 从Python调用外部命令

    您如何在Python脚本中调用外部命令(就像我在Unix Shell或Windows命令提示符下键入的一样)? #1楼 os.system不允许您存储结果,因此,如果您要将结果存储在某个列表中或sub ...

  2. python调用shell命令-Python调用shell命令常用方法(4种)

    方法一.使用os模块的system方法:os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256表示未找到,该方法适用于shell命令 ...

  3. python调用shell命令-用Python调用Shell命令

    Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库,也当然可以用Python调用Shell命令. 用Python调用Shell命令有如 ...

  4. python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?

    原标题:在Python中执行shell命令的6种方法,你都知道吗? Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解 ...

  5. python调用shell命令-「Python」6种python中执行shell命令方法

    用Python调用Shell命令有如下几种方式: 第一种: os.system("The command you want"). 这个调用相当直接,且是同步进行的,程序需要阻塞并等 ...

  6. python调用cmd命令释放端口_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  7. python 执行shell_用Python调用Shell命令

    Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库,也当然可以用Python调用Shell命令. 用Python调用Shell命令有如 ...

  8. python调用shell命令

    在python程序中调用shell命令 1. os.system(command) 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有 ...

  9. python调用7zip命令密码解压缩

    python调用7zip命令密码解压缩 简单的python解压缩命令如下: import os #zipSysDir:7-zip安装的系统目录 zipSysDir = "D:\\Progra ...

  10. python调用cmd命令会弹出黑框_python 调用cmd,不显示cmd黑框

    python 调用系统命令的方式有很多 1.1   os.system(command) 在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态.这实际上是使用C标准 ...

最新文章

  1. JS中Math函数的常用方法
  2. css学习任务二:切图写代码
  3. 读文件计算方法执行时间的实例
  4. tensorflow综合示例4:逻辑回归:使用Estimator
  5. Unity --- MeshRenderer之网格合并
  6. LeetCode之Sum of Two Integers
  7. python获取表单数据的代码_使用flask和python从html表单获取表单数据
  8. Spring,Mybatis,Springmvc框架整合项目(第一部分)
  9. python路线图_Python路线图
  10. 华夏基金:养老是基金业下一个20年最大风口
  11. Flash游戏破解参考
  12. modbus协议的常用测试工具
  13. 嵌入式FTP服务器的移植与配置:VSF…
  14. ABAP EXPORTING IMPORTING
  15. RFCOMM简单介绍
  16. php7 codeigniter 404,使用codeigniter出现404问题
  17. leecode试题 178. 分数排名
  18. 9:用户和权限-步入Linux的现代方法
  19. 如何使用加速度计实现倾斜角度计算
  20. 学习成绩 =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。(C语言版)

热门文章

  1. VirtualBox无法启动虚拟机的解决办法
  2. systemback慎用:安装后无法启动
  3. Day13_定时器中断处理
  4. Day01_硬盘基本知识
  5. winform combobox 单机不关闭_单机脉冲除尘器铜仁单机脉冲除尘器参数
  6. java error_java基础:Error和Exception
  7. 使用Windows Embedded Source Tools for Bluetooth Technology简化蓝牙开发
  8. Java处理Json数据
  9. Linux进程管理工具
  10. 关于Union,Struct and Class的大小计算问题