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正则表达式的使用范例详解
Aug 08 Python
Python实现向QQ群成员自动发邮件的方法
Nov 19 Python
浅谈五大Python Web框架
Mar 20 Python
python中matplotlib实现最小二乘法拟合的过程详解
Jul 11 Python
python通过zabbix api获取主机
Sep 17 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
Django框架实现的普通登录案例【使用POST方法】
May 15 Python
Django urls.py重构及参数传递详解
Jul 23 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
python 爬取免费简历模板网站的示例
Sep 27 Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 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 网上商城促销设计实例代码
2012/02/17 PHP
php版本的cron定时任务执行器使用实例
2014/08/19 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
2013/04/02 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
js表单元素checked、radio被选中的几种方法(详解)
2016/08/22 Javascript
微信小程序商城项目之购物数量加减(3)
2017/04/17 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
[02:06]DOTA2肉山黑名单魔法终结者 敌法师中文配音鉴赏
2013/06/17 DOTA
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
Django和Flask框架优缺点对比
2019/10/24 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
Django视图、传参和forms验证操作
2020/07/15 Python
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
阿波罗盒子:Apollo Box
2017/08/14 全球购物
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
书法比赛获奖感言
2014/02/10 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
Golang 结构体数据集合
2022/04/22 Golang