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 06 Python
python 禁止函数修改列表的实现方法
Aug 03 Python
python 中的list和array的不同之处及转换问题
Mar 13 Python
python 借助numpy保存数据为csv格式的实现方法
Jul 04 Python
python中cPickle类使用方法详解
Aug 27 Python
numpy向空的二维数组中添加元素的方法
Nov 01 Python
itchat-python搭建微信机器人(附示例)
Jun 11 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
Feb 29 Python
使用Django清空数据库并重新生成
Apr 03 Python
浅谈sklearn中predict与predict_proba区别
Jun 28 Python
详解pycharm配置python解释器的问题
Oct 15 Python
基于Python和openCV实现图像的全景拼接详细步骤
Oct 05 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
Laravel模型事件的实现原理详解
2018/03/14 PHP
JavaScript的Function详细
2006/11/14 Javascript
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
JQuery从头学起第一讲
2010/07/04 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
Python下使用Psyco模块优化运行速度
2015/04/05 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
铁路工务反思材料
2014/02/07 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
公司仓库管理制度
2015/08/04 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS