Python获取单个程序CPU使用情况趋势图

 更新时间:2015年03月10日 10:59:22   投稿:junjie  
这篇文章主要介绍了Python获取单个程序CPU使用情况趋势图,本文使用matplotlib将数据可视化,需要的朋友可以参考下

本文定位:已将CPU历史数据存盘,等待可视化进行分析,可暂时没有思路。
前面一篇文章(https://www.jb51.net/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()

执行效果如下:

上面只是给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 try except 捕获所有异常的实例

    python try except 捕获所有异常的实例

    今天小编就为大家分享一篇python try except 捕获所有异常的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python实现从字符串中找出字符1的位置以及个数的方法

    python实现从字符串中找出字符1的位置以及个数的方法

    这篇文章主要介绍了python实现从字符串中找出字符1的位置以及个数的方法,对于Python字符串操作的学习有一定的帮助与借鉴作用,需要的朋友可以参考下
    2014-08-08
  • python调用pyaudio使用麦克风录制wav声音文件的教程

    python调用pyaudio使用麦克风录制wav声音文件的教程

    这篇文章主要介绍了python调用pyaudio使用麦克风录制wav声音文件的教程,详细的给大家介绍了pyaudio库的安装与使用,需要的朋友可以参考下
    2019-06-06
  • 详解Python中的四种队列

    详解Python中的四种队列

    队列是一种只允许在一端进行插入操作,而在另一端进行删除操作的线性表。这篇文章主要介绍了Python中的四种队列,需要的朋友可以参考下
    2018-05-05
  • Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)

    Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)

    这篇文章主要介绍了基于opencv的简单图像轮廓形状识别(全网最简单最少代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python爬虫之模拟登陆csdn的实例代码

    python爬虫之模拟登陆csdn的实例代码

    今天小编就为大家分享一篇python爬虫之模拟登陆csdn的实例代码,具有很好的参考价值希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python3.6实现连接mysql或mariadb的方法分析

    Python3.6实现连接mysql或mariadb的方法分析

    这篇文章主要介绍了Python3.6实现连接mysql或mariadb的方法,结合实例形式分析了Python3.6针对mysql或mariadb数据库操作的相关模块安装、数据库与表的创建、数据库连接等操作技巧与注意事项,需要的朋友可以参考下
    2018-05-05
  • Python基于Hypothesis测试库生成测试数据

    Python基于Hypothesis测试库生成测试数据

    这篇文章主要介绍了Python基于Hypothesis测试库生成测试数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Python饼状图的绘制实例

    Python饼状图的绘制实例

    今天小编就为大家分享一篇关于Python饼状图的绘制实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • python3实现字符串的全排列的方法(无重复字符)

    python3实现字符串的全排列的方法(无重复字符)

    这篇文章主要介绍了python3实现字符串的全排列的方法(无重复字符),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论