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中的数据对象持久化存储模块pickle的使用示例
Mar 03 Python
python八皇后问题的解决方法
Sep 27 Python
django session完成状态保持的方法
Nov 27 Python
Python从Excel中读取日期一列的方法
Nov 28 Python
python多线程下信号处理程序示例
May 31 Python
python交易记录整合交易类详解
Jul 03 Python
python正则爬取某段子网站前20页段子(request库)过程解析
Aug 10 Python
Django实现分页显示效果
Oct 31 Python
Python 解码Base64 得到码流格式文本实例
Jan 09 Python
Python requests获取网页常用方法解析
Feb 20 Python
20行Python代码实现视频字符化功能
Apr 13 Python
详解pandas赋值失败问题解决
Nov 29 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 HtmlReplace输入过滤安全函数
2010/07/03 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
js电信网通双线自动选择技巧
2008/11/18 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
Prototype框架详解
2015/11/25 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
python输出指定月份日历的方法
2015/04/23 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
Python基于pillow判断图片完整性的方法
2016/09/18 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
从python读取sql的实例方法
2020/07/21 Python
英国文胸专家:AmpleBosom.com
2018/02/06 全球购物
乌克兰鞋类购物网站:Eobuv.com.ua
2020/11/28 全球购物
收银员岗位职责
2014/02/07 职场文书
大学生个人学年总结
2015/02/15 职场文书
Window server中安装Redis的超详细教程
2021/11/17 Redis