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实现发送email的几种常用方法
Aug 18 Python
Python图算法实例分析
Aug 13 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
python 直接赋值和copy的区别详解
Aug 07 Python
python实现图片压缩代码实例
Aug 12 Python
python中的itertools的使用详解
Jan 13 Python
pytorch 查看cuda 版本方式
Jun 23 Python
python 实现ping测试延迟的两种方法
Dec 10 Python
python 实现定时任务的四种方式
Apr 01 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
May 10 Python
pytorch 如何使用float64训练
May 24 Python
Python列表的索引与切片
Apr 07 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
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
php面向对象的方法重载两种版本比较
2008/09/08 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
表单元素事件 (Form Element Events)
2009/07/17 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
Python实现二分法算法实例
2015/02/02 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
python游戏开发的五个案例分享
2020/03/09 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
外国语学院毕业生自荐信
2013/10/28 职场文书
小学班主任培训方案
2014/06/04 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
外国人来华邀请函
2015/01/31 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技