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 fileinput模块使用介绍
Nov 30 Python
python基于Tkinter库实现简单文本编辑器实例
May 05 Python
python中函数传参详解
Jul 03 Python
玩转python selenium鼠标键盘操作(ActionChains)
Apr 12 Python
python批量赋值操作实例
Oct 22 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
Aug 02 Python
numpy中三维数组中加入元素后的位置详解
Nov 28 Python
python 实现让字典的value 成为列表
Dec 16 Python
python实现用类读取文件数据并计算矩形面积
Jan 18 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
基于python实现查询ip地址来源
Jun 02 Python
Java byte数组操纵方式代码实例解析
Jul 22 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
zend framework配置操作数据库实例分析
2012/12/06 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
PHP脚本自动识别验证码查询汽车违章
2016/12/20 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
Javascript随机标签云代码实例
2016/06/21 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
2019/08/15 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
Python批量更改文件名的实现方法
2017/10/29 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
成品仓管员岗位职责
2013/12/11 职场文书
建筑设计专业求职自我评价
2014/03/02 职场文书
体育运动口号
2014/06/09 职场文书
党支部综合考察意见
2015/06/01 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
导游词之张家口
2019/12/13 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL