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打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
Python 两个列表的差集、并集和交集实现代码
Sep 21 Python
python matplotlib坐标轴设置的方法
Dec 05 Python
python合并同类型excel表格的方法
Apr 01 Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
Python银行系统实战源码
Oct 25 Python
pygame实现俄罗斯方块游戏(对战篇1)
Oct 29 Python
Pandas操作CSV文件的读写实现方法
Nov 13 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
Django接收照片储存文件的实例代码
Mar 07 Python
通过cmd进入python的步骤
Jun 16 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
destoon整合UCenter图文教程
2014/06/21 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
用jQuery打造TabPanel效果代码
2010/05/22 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
深入探究node之Transform
2017/07/20 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
迟到检讨书300字
2014/02/14 职场文书
个人校本研修方案
2014/05/26 职场文书
励志演讲稿300字
2014/08/21 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
社区党建工作总结2015
2015/05/13 职场文书
消防安全培训工作总结
2015/10/23 职场文书
CSS巧用渐变实现高级感背景光动画
2021/12/06 HTML / CSS
vue3获取当前路由地址
2022/02/18 Vue.js