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之类的细节
Oct 13 Python
初步讲解Python中的元组概念
May 21 Python
Python简单实现enum功能的方法
Apr 25 Python
详解Python 正则表达式模块
Nov 05 Python
利用arcgis的python读取要素的X,Y方法
Dec 22 Python
python实现函数极小值
Jul 10 Python
Python 使用 docopt 解析json参数文件过程讲解
Aug 13 Python
python快速排序的实现及运行时间比较
Nov 22 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
Mar 26 Python
Python pip安装模块提示错误解决方案
May 22 Python
python 引用传递和值传递详解(实参,形参)
Jun 05 Python
python re.match()用法相关示例
Jan 27 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高效率写法(详解原因)
2013/06/20 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
PHP重载基础知识回顾
2020/09/10 PHP
关于extjs4如何获取grid修改后的数据的问题
2013/08/07 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
常见的python正则用法实例讲解
2016/06/21 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
理货员的岗位职责
2013/11/23 职场文书
酒店个人求职信范文
2014/01/25 职场文书
经理秘书求职自荐信范文
2014/03/23 职场文书
个人委托书格式
2014/04/04 职场文书
快递员岗位职责
2014/09/12 职场文书
碧霞祠导游词
2015/02/09 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
公司员工培训管理制度
2015/08/04 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书