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赋值操作方法分享
Mar 23 Python
Python通过解析网页实现看报程序的方法
Aug 04 Python
python实现读取excel写入mysql的小工具详解
Nov 20 Python
Python实现的选择排序算法示例
Nov 29 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
python logging日志模块以及多进程日志详解
Apr 18 Python
python3.5 email实现发送邮件功能
May 22 Python
python实现简单flappy bird
Dec 24 Python
pandas条件组合筛选和按范围筛选的示例代码
Aug 26 Python
python制作英语翻译小工具代码实例
Sep 09 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
Feb 18 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 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
让PHP支持断点续传的源码
2010/05/16 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
2014/08/06 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
php创建类并调用的实例方法
2019/09/25 PHP
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
简单介绍Python中的RSS处理
2015/04/13 Python
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
django教程如何自学
2020/07/31 Python
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
代理商会议邀请函
2014/01/27 职场文书
房地产开盘策划方案
2014/02/10 职场文书
中专生毕业个人鉴定
2014/02/26 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
学校端午节活动总结
2015/02/11 职场文书
运动会班级前导词
2015/07/20 职场文书
2016党员干部政治学习心得体会
2016/01/23 职场文书
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript
SQL之各种join小结详细讲解
2021/08/04 MySQL