基于Python编写一个监控CPU的应用系统


Posted in Python onJune 25, 2022

导语

哈喽!我是木木子,最近好懒了哈天气太热了.jpg

有时间给大家更新一下下啦!

在使用 Mac 电脑办公时,有时候不知道哪些软件或进程会占用大量的资源,导致进行其他任务时出现变慢、卡顿等现象。因此,实时监控系统的资源就变得非常重要。

但是市面上的系统监控软件琳琅满目,种类繁多,哪款监控软件最好?

​今天小编给大家介绍一款超好用的Mac 监控软件奔跑的猫猫,希望可以对你的选择有所帮助。

 嗯哼~win10电脑表示不服,Mac能有的,我也不能少,SO 一款治愈系的猫咪监控小程序就做出来啦

一、简介

1.1 软件介绍

用过Mac的可能知道这么一款软件:RunCat。

这是一款治愈系的 Mac 系统监控软件,它可以以动画的形式驻留在你的系统状态栏里。

基于Python编写一个监控CPU的应用系统

猫猫可以通过运行速度告诉你 Mac 的 CPU 使用率。而且 RunCat 为菜单栏提供了关键帧动画,动画根据 Mac 的 CPU 使用情况改变速度。

当然 RunCat 不只有猫,还有很多动物和动画,比如:

猫 ?—狗 ?—猎豹 ?—兔子 ?—海豚 ?—青蛙 ?—鸟 ?—企鹅 ?—很长的龙 ?—齿轮 ⚙️—火 ?—水滴 ?—火箭 ?—环 ⭕️——等等。

这应用就功能来说确实不够有优势,但是架不住它好玩啊。哈哈 小编就喜欢给大家介绍一些好玩儿的东西嘛~

另外它自带的免费动画很多,一般来说还是够用的。RunCat 是款更适合无聊发呆时治愈打发时间的软件哦!

二、准备中

2.0 原理简介

原理其实很简单,利用python的psutil包就可以轻松地获取当前电脑的CPU利用率或者运行内存利用率。然后根据利用率来决定托盘图标的更新频率就好啦。

然后通过循环设置5个不同状态的icon来实现猫猫跑动的效果,有兴趣的小伙伴可以制作自己喜欢

的动画然后替换掉我找到的就OK啦~

2.1 环境安装

Python3、Pycharm。相关模块:psutil模块;以及一些python自带的模块。

模块安装统一使用豆瓣镜像源:

pip install -i https://pypi.douban.com/simple/ +模块名

2.2 素材准备(可修改)

猫猫可以通过运行速度告诉你 Mac 的 CPU 使用率,主要也是猫猫做的小脚本哈,其他的动物可以自己尝试做啦~

基于Python编写一个监控CPU的应用系统

三、开始敲代码

3.1 导入模块

import sys
import time
import psutil
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QSystemTrayIcon

3.2 奔跑的猫-CPU

def runcatCPU():
    app = QApplication(sys.argv)
    # 最后一个可视的窗口退出时程序不退出
    app.setQuitOnLastWindowClosed(False)
    icon = QSystemTrayIcon()
    icon.setIcon(QIcon('icons/0.png'))
    icon.setVisible(True)
    cpu_percent = psutil.cpu_percent(interval=1) / 100
    cpu_percent_update_fps = 20
    fps_count = 0
    while True:
        fps_count += 1
        if fps_count > cpu_percent_update_fps:
            cpu_percent = psutil.cpu_percent(interval=1) / 100
            fps_count = 0
        # 开口向上的抛物线, 左边递减
        time_interval = (cpu_percent * cpu_percent - 2 * cpu_percent + 2) / 20
        for i in range(5):
            icon.setIcon(QIcon('icons/%d.png' % i))
            icon.setToolTip('cpu: %.2f' % cpu_percent)
            time.sleep(time_interval)
    app.exec_()

3.3 奔跑的猫-内存

def runcatMemory():
    app = QApplication(sys.argv)
    # 最后一个可视的窗口退出时程序不退出
    app.setQuitOnLastWindowClosed(False)
    icon = QSystemTrayIcon()
    icon.setIcon(QIcon('icons/0.png'))
    icon.setVisible(True)
    memory_percent = psutil.virtual_memory().percent / 100
    memory_percent_update_fps = 20
    fps_count = 0
    while True:
        fps_count += 1
        if fps_count > memory_percent_update_fps:
            memory_percent = psutil.virtual_memory().percent / 100
            fps_count = 0
        # 开口向上的抛物线, 左边递减
        time_interval = (memory_percent * memory_percent - 2 * memory_percent + 2) / 20
        for i in range(5):
            icon.setIcon(QIcon('icons/%d.png' % i))
            icon.setToolTip('memory: %.2f' % memory_percent)
            time.sleep(time_interval)
    app.exec_()

四、效果展示

静态截图展示效果

基于Python编写一个监控CPU的应用系统

以上就是基于Python编写一个监控CPU的应用系统的详细内容,更多关于Python监控CPU的资料请关注三水点靠木其它相关文章!


Tags in this post...

Python 相关文章推荐
布同 统计英文单词的个数的python代码
Mar 13 Python
Python编程之序列操作实例详解
Jul 22 Python
python3.6 实现AES加密的示例(pyCryptodome)
Jan 10 Python
python逐行读写txt文件的实例讲解
Apr 03 Python
Python restful框架接口开发实现
Apr 13 Python
python开发前景如何
Jun 11 Python
Python调用飞书发送消息的示例
Nov 10 Python
python中xlutils库用法浅析
Dec 29 Python
matplotlib阶梯图的实现(step())
Mar 02 Python
超级详细实用的pycharm常用快捷键
May 12 Python
Matplotlib可视化之添加让统计图变得简单易懂的注释
Jun 11 Python
请求模块urllib之PYTHON爬虫的基本使用
Apr 08 Python
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
python热力图实现的完整实例
You might like
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
javascript函数库-集合框架
2007/04/27 Javascript
javascript 数组排序函数
2009/08/20 Javascript
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
2016/04/26 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
[05:24]TI9采访——教练
2019/08/24 DOTA
Django与遗留的数据库整合的方法指南
2015/07/24 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Python学习之os模块及用法
2020/06/03 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
材料成型专业个人求职信范文
2013/09/25 职场文书
维稳工作情况汇报
2014/10/27 职场文书
财务审计整改报告
2014/11/06 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
创业计划书之酒店
2019/08/30 职场文书