获得CPU利用率(python调用top命令实现)
本文定位:想通过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命令实现)相关推荐
- 从Python调用外部命令
您如何在Python脚本中调用外部命令(就像我在Unix Shell或Windows命令提示符下键入的一样)? #1楼 os.system不允许您存储结果,因此,如果您要将结果存储在某个列表中或sub ...
- python调用shell命令-Python调用shell命令常用方法(4种)
方法一.使用os模块的system方法:os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256表示未找到,该方法适用于shell命令 ...
- python调用shell命令-用Python调用Shell命令
Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库,也当然可以用Python调用Shell命令. 用Python调用Shell命令有如 ...
- python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?
原标题:在Python中执行shell命令的6种方法,你都知道吗? Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解 ...
- python调用shell命令-「Python」6种python中执行shell命令方法
用Python调用Shell命令有如下几种方式: 第一种: os.system("The command you want"). 这个调用相当直接,且是同步进行的,程序需要阻塞并等 ...
- python调用cmd命令释放端口_详解python调用cmd命令三种方法
目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...
- python 执行shell_用Python调用Shell命令
Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库,也当然可以用Python调用Shell命令. 用Python调用Shell命令有如 ...
- python调用shell命令
在python程序中调用shell命令 1. os.system(command) 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有 ...
- python调用7zip命令密码解压缩
python调用7zip命令密码解压缩 简单的python解压缩命令如下: import os #zipSysDir:7-zip安装的系统目录 zipSysDir = "D:\\Progra ...
- python调用cmd命令会弹出黑框_python 调用cmd,不显示cmd黑框
python 调用系统命令的方式有很多 1.1 os.system(command) 在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态.这实际上是使用C标准 ...
最新文章
- JS中Math函数的常用方法
- css学习任务二:切图写代码
- 读文件计算方法执行时间的实例
- tensorflow综合示例4:逻辑回归:使用Estimator
- Unity --- MeshRenderer之网格合并
- LeetCode之Sum of Two Integers
- python获取表单数据的代码_使用flask和python从html表单获取表单数据
- Spring,Mybatis,Springmvc框架整合项目(第一部分)
- python路线图_Python路线图
- 华夏基金:养老是基金业下一个20年最大风口
- Flash游戏破解参考
- modbus协议的常用测试工具
- 嵌入式FTP服务器的移植与配置:VSF…
- ABAP EXPORTING IMPORTING
- RFCOMM简单介绍
- php7 codeigniter 404,使用codeigniter出现404问题
- leecode试题 178. 分数排名
- 9:用户和权限-步入Linux的现代方法
- 如何使用加速度计实现倾斜角度计算
- 学习成绩 =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。(C语言版)
热门文章
- VirtualBox无法启动虚拟机的解决办法
- systemback慎用:安装后无法启动
- Day13_定时器中断处理
- Day01_硬盘基本知识
- winform combobox 单机不关闭_单机脉冲除尘器铜仁单机脉冲除尘器参数
- java error_java基础:Error和Exception
- 使用Windows Embedded Source Tools for Bluetooth Technology简化蓝牙开发
- Java处理Json数据
- Linux进程管理工具
- 关于Union,Struct and Class的大小计算问题