Python获取单个程序CPU使用情况趋势图


Posted in Python onMarch 10, 2015

本文定位:已将CPU历史数据存盘,等待可视化进行分析,可暂时没有思路。
前面一篇文章(https://3water.com/article/61956.htm)提到过在linux下如何用python将top命令的结果进行存盘,本文是它的后续。

python中我们可以用matplotlib很方便的将数据可视化,比如下面的代码:

import matplotlib.pyplot as plt
list1 = [1,2,3]

list2 = [4,5,9]

plt.plot(list1,list2)

plt.show()

执行效果如下:

Python获取单个程序CPU使用情况趋势图

上面只是给plot函数传了两个list数据结构,show一下图形就出来了……哈哈,很方便吧!
获取CPU趋势图就用这个了!
可我们现在得到的数据没那么友好,比如我现在有个文件(file.txt),内容如下:

Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu(s): 7.7%us, 7.7%sy, 0.0%ni, 76.9%id, 0.0%wa, 0.0%hi, 7.7%si, 0.0%st

Cpu(s): 0.0%us, 9.1%sy, 0.0%ni, 90.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu(s): 9.1%us, 0.0%sy, 0.0%ni, 90.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu(s): 8.3%us, 8.3%sy, 0.0%ni, 83.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu(s): 0.0%us, 9.1%sy, 0.0%ni, 90.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

其中,第一列为时间,第六列为CPU的idle值。

要从这组数据中得出CPU使用情况趋势图,我们就要做些工作了。

下面是代码,这里提供一个思路,需要的朋友拷回去改一下吧:

#coding:utf-8

'''

      File      : cpuUsage.py

      Author    : Mike

      E-Mail    : Mike_Zhang@live.com

'''

import matplotlib.pyplot as plt

import string
def getCpuInfData(fileName):

    ret = {}

    f = open(fileName,"r")

    lineList = f.readlines()

    for line in lineList:

        tmp = line.split()

        sz = len(tmp)

        t_key = string.atoi(tmp[0]) # 得到key

        t_value = 100.001-string.atof(line.split(':')[1].split(',')[3].split('%')[0]) # 得到value

        print t_key,t_value    

        if not ret.has_key(t_key) :

            ret[t_key] = []

        ret[t_key].append(t_value)

    f.close()

    return ret

    

retMap1 = getCpuInfData("file.txt")

# 生成CPU使用情况趋势图

list1 = retMap1.keys()

list1.sort() 

list2 = []

for i in list1:list2.append(retMap1[i])

plt.plot(list1,list2)

plt.show()

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

Python 相关文章推荐
python使用7z解压软件备份文件脚本分享
Feb 21 Python
python+mysql实现简单的web程序
Sep 11 Python
Python编程中用close()方法关闭文件的教程
May 24 Python
Python选课系统开发程序
Sep 02 Python
高效测试用例组织算法pairwise之Python实现方法
Jul 19 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
3分钟学会一个Python小技巧
Nov 23 Python
python+opencv实现阈值分割
Dec 26 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
Python使用xlrd读取Excel格式文件的方法
Mar 10 #Python
使用graphics.py实现2048小游戏
Mar 10 #Python
Python实现去除代码前行号的方法
Mar 10 #Python
Linux下使用python调用top命令获得CPU利用率
Mar 10 #Python
Python获取DLL和EXE文件版本号的方法
Mar 10 #Python
Python接收Gmail新邮件并发送到gtalk的方法
Mar 10 #Python
Python创建xml的方法
Mar 10 #Python
You might like
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
JavaScript实现短暂提示框功能
2018/04/04 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
js删除指定位置超链接中含有百度与360的标题
2021/01/06 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
Python3中的json模块使用详解
2018/05/05 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
使用Python发现隐藏的wifi
2020/03/04 Python
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
三个儿子教学反思
2014/02/03 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
领导干部保密承诺书
2014/08/30 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书