Linux下使用python调用top命令获得CPU利用率

 更新时间:2015年03月10日 10:50:50   投稿:junjie  
这篇文章主要介绍了Linux下使用python调用top命令获得CPU利用率,本文直接给出实现代码,需要的朋友可以参考下

本文定位:想通过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

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

相关文章

  • matplotlib部件之套索Lasso的使用

    matplotlib部件之套索Lasso的使用

    这篇文章主要介绍了matplotlib部件之套索Lasso的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 在VScode中引用自定义模块问题

    在VScode中引用自定义模块问题

    这篇文章主要介绍了在VScode中引用自定义模块问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Python中文编码那些事

    Python中文编码那些事

    由于中文的特殊性,造成了在各大编程语言中都存在编码转换的问题,今天我们来探讨下python中中文编码如何处理呢
    2014-06-06
  • 利用Python绘制MySQL数据图实现数据可视化

    利用Python绘制MySQL数据图实现数据可视化

    这篇文章主要介绍了利用Python绘制MySQL数据图实现数据可视化,其中包括Python与MySQL的连接搭建、用Python执行MySQL语句查询等内容,需要的朋友可以参考下
    2015-03-03
  • Python单元测试实例详解

    Python单元测试实例详解

    这篇文章主要介绍了Python单元测试,结合实例形式详细分析了Python单元测试模块的功能、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-05-05
  • 如何使用Python判断应用是否处于已打包状态

    如何使用Python判断应用是否处于已打包状态

    在使用 PyInstaller 打包 Python 应用时,有时需要在代码中判断程序是否处于“打包状态”,本文将介绍几种方法来判断是否处于打包状态,感兴趣的可以了解下
    2025-03-03
  • python中如何设置list步长

    python中如何设置list步长

    这篇文章主要介绍了python中如何设置list步长,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python爬虫爬取某站上海租房图片

    python爬虫爬取某站上海租房图片

    这篇文章主要介绍了学习python爬虫并爬取某站上海租房图片的原理介绍以及相关代码分享,对此有兴趣的朋友学习下。
    2018-02-02
  • 如何通过python代码根据模板修改变量生成新yaml文件

    如何通过python代码根据模板修改变量生成新yaml文件

    有些时候,需要根据一个yaml模板创建多个yaml文件实例,我们先写一个yaml文件模板,然后通过python代码修改模板中的变量,存储为一个新的yaml文件,需要配合python的库Template及ymal使用,本文给大家讲解的非常详细,需要的朋友跟随小编一起看看吧
    2023-11-11
  • Python数据容器dict(字典)的实现

    Python数据容器dict(字典)的实现

    本文主要介绍了Python数据容器dict(字典)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02

最新评论