基于Python实现实时监控CPU使用率

 更新时间:2022年04月19日 08:25:53   作者:木木子学python  
这篇文章主要为大家介绍了一款手写编程代码的小脚本,能够轻松在界面上展示:利用Python实时监控CPU使用率,随时展现。也无需下载管理软件,感兴趣的可以了解一下

导语

哈喽!大家好,我是木木子!准时上线给大家更新啦!​

Ps:小故事

前两天有位粉丝朋友在群里问我说,有没有不装一些我们熟知的电脑管理软件但是依然可以查看CPU的使用率方法,或者能够介绍一款比较给力的小插件也好。确实,在生活中有不少人是不喜欢装那些管理软件的。

今天,木木子就给大家介绍一款手写编程代码的小脚本,能够轻松在界面上展示:利用Python实时监控CPU使用率,随时展现。也无需下载管理软件,几十行代码即可搞定~

一、模块简介

1.0 关于模块的详细用法参考

psutil文档

matplotlib文档

1.1 用到psutil模块

小介绍:

psutil是一个跨平台库(code.google.com/p/psutil/)

括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。

它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、

iostat、iotop、uptime、pidof、tty、taskset、pmap等。

目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统。

1.2 用到matplotlib模块

小介绍:

Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

二、准备中

2.1 相关环境

**Python3.6、Pycharm。****相关模块:**matplotlib模块;psutil模块。

2.2 安装

这里小编统一使用:pip install -i pypi.douban.com/simple/+模块名

三、开始敲代码

3.1 代码内容

利用Python实时监控CPU使用率:

  • 执行用户进程
  • 执行内核进程和中断
  • CPU处于空闲状态

主要是这三个方面的代码编写过程。

3.2 附完整代码

import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager
import psutil as p


POINTS = 300
fig, ax = plt.subplots()
ax.set_ylim([0, 100])
ax.set_xlim([0, POINTS])
ax.set_autoscale_on(False)
ax.set_xticks([])
ax.set_yticks(range(0, 101, 10))
ax.grid(True)
# 执行用户进程的时间百分比
user = [None] * POINT
# 执行内核进程和中断的时间百分比
sys = [None] * POINT
# CPU处于空闲状态的时间百分比
idle = [None] * POINT
l_user, = ax.plot(range(POINTS), user, label='User %')
l_sys, = ax.plot(range(POINTS), sys, label='Sys %')
l_idle, = ax.plot(range(POINTS), idle, label='Idle %')
ax.legend(loc='upper center', ncol=4, prop=font_manager.FontProperties(size=10))
bg = fig.canvas.copy_from_bbox(ax.bbox)


def cpu_usage():
	t = p.cpu_times()
	return [t.user, t.system, t.idle]


before = cpu_usage()


def get_cpu_usage():
	global before
	now = cpu_usage()
	delta = [now[i] - before[i] for i in range(len(now))]
	total = sum(delta)
	before = now
	return [(100.0*dt)/(total+0.1) for dt in delta]


def OnTimer(ax):
	global user, sys, idle, bg
	tmp = get_cpu_usage()
	user = user[1:] + [tmp[0]]
	sys = sys[1:] + [tmp[1]]
	idle = idle[1:] + [tmp[2]]
	l_user.set_ydata(user)
	l_sys.set_ydata(sys)
	l_idle.set_ydata(idle)
	while True:
		try:
			ax.draw_artist(l_user)
			ax.draw_artist(l_sys)
			ax.draw_artist(l_idle)
			break
		except:
			pass
	ax.figure.canvas.draw()


def start_monitor():
	timer = fig.canvas.new_timer(interval=100)
	timer.add_callback(OnTimer, ax)
	timer.start()
	plt.show()


if __name__ == '__main__':
	start_monitor()

四、效果展示

静态截图展示——

到此这篇关于基于Python实现实时监控CPU使用率的文章就介绍到这了,更多相关Python监控CPU内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python多个MP4合成视频的实现方法

    Python多个MP4合成视频的实现方法

    最近接触了个项目,需要把多个文件合成一个视频,本文主要使用Python把多个MP4合成视频,感兴趣的可以了解一下
    2021-07-07
  • miniconda3介绍、安装以及使用教程

    miniconda3介绍、安装以及使用教程

    Miniconda是一款小巧的python环境管理工具,安装包大约只有50M多点,其安装程序中包含conda软件包管理器和Python,下面这篇文章主要给大家介绍了关于miniconda3介绍、安装以及使用的相关资料,需要的朋友可以参考下
    2023-02-02
  • python将天数转换为日期字符串的方法实例

    python将天数转换为日期字符串的方法实例

    这篇文章主要给大家介绍了关于python将天数转换为日期字符串的相关资料,以及将将字符串的时间转换为时间戳的实例代码,需要的朋友可以参考下
    2022-01-01
  • python 实时得到cpu和内存的使用情况方法

    python 实时得到cpu和内存的使用情况方法

    今天小编就为大家分享一篇python 实时得到cpu和内存的使用情况方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python PyQt5实现拖放效果的原理详解

    Python PyQt5实现拖放效果的原理详解

    这篇文章主要为大家详细介绍了Python PyQt5中拖放效果的实现原理与实现代码,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-11-11
  • python使用PyGame实现打砖块游戏

    python使用PyGame实现打砖块游戏

    打砖块也是一个非常经典的小游戏,玩法大致如下,用一个小车接一个小球,然后反射小球,使之打在砖块上,当小球碰到砖块之后,则砖块被消掉,逻辑十分清晰,本文将给大家介绍了python使用PyGame实现打砖块游戏,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2023-12-12
  • python不等于运算符的具体使用

    python不等于运算符的具体使用

    在Python语言中,用 != 表示不等于,本文主要介绍了python不等于运算符的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • django写单元测试的方法

    django写单元测试的方法

    这篇文章主要介绍了django写单元测试的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Python使用Rich type和TinyDB构建联系人通讯录

    Python使用Rich type和TinyDB构建联系人通讯录

    这篇文章主要为大家介绍了Python使用Rich type和TinyDB构建联系人通讯录应用程序,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Python实现自动填写脚本流程详解

    Python实现自动填写脚本流程详解

    这篇文章主要介绍了Python实现自动填写脚本,100%准确率,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-10-10

最新评论