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 12 Python
Python编程pygame模块实现移动的小车示例代码
Jan 03 Python
基于python requests库中的代理实例讲解
May 07 Python
pandas带有重复索引操作方法
Jun 08 Python
python 将有序数组转换为二叉树的方法
Mar 26 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
Django工程的分层结构详解
Jul 18 Python
使用Python制作一个打字训练小工具
Oct 01 Python
Django 路由层URLconf的实现
Dec 30 Python
Python字符串格式化f-string多种功能实现
May 07 Python
Python3 使用pip安装git并获取Yahoo金融数据的操作
Apr 08 Python
python开发实时可视化仪表盘的示例
May 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
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
php中fsockopen用法实例
2015/01/05 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
类之Prototype.js学习
2007/06/13 Javascript
Jquery 设置标题的自动翻转
2009/10/03 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
加载 Javascript 最佳实践
2011/10/30 Javascript
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python实现多线程采集的2个代码例子
2014/07/07 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
python实现udp传输图片功能
2020/03/20 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
法学毕业生自荐信
2013/11/13 职场文书
销售行政专员职责
2014/01/03 职场文书
《这儿真好》教学反思
2014/02/22 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书