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检测lvs real server状态
Jan 22 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
python路径的写法及目录的获取方式
Dec 26 Python
解析python 类方法、对象方法、静态方法
Aug 15 Python
解决python便携版无法直接运行py文件的问题
Sep 01 Python
2020版Python学习路线图(附学习资料)
Sep 15 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
python 利用panda 实现列联表(交叉表)
Feb 06 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 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
Node.js生成HttpStatusCode辅助类发布到npm
2013/04/09 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
简单理解js的冒泡排序
2016/12/19 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
Python在字符串中处理html和xml的方法
2020/07/31 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
北京振戎融通Java面试题
2015/09/03 面试题
高二生物教学反思
2014/01/27 职场文书
如何写一份好的英文求职信
2014/03/19 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
教育系统干部作风整顿心得体会
2014/09/09 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python