基于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服务器拒绝服务攻击代码
Jan 16 Python
举例讲解Python中metaclass元类的创建与使用
Jun 30 Python
详解python中requirements.txt的一切
Mar 03 Python
PyQt弹出式对话框的常用方法及标准按钮类型
Feb 27 Python
python实现合并两个排序的链表
Mar 03 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
Python属性和内建属性实例解析
Jan 14 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 Python
5行Python代码实现一键批量扣图
Jun 29 Python
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
python热力图实现的完整实例
You might like
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
ThinkPHP之getField详解
2014/06/20 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
浅谈PHPANALYSIS提取关键字
2019/03/08 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
jQuery中:checked选择器用法实例
2015/01/04 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
Python selenium如何设置等待时间
2016/09/15 Python
python实现按长宽比缩放图片
2018/06/07 Python
Python双向循环链表实现方法分析
2018/07/30 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
Html5实现iPhone开机界面示例代码
2013/06/30 HTML / CSS
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
自荐信模版
2013/10/24 职场文书
初中升旗仪式演讲稿
2014/05/08 职场文书
三方股份合作协议书
2014/10/13 职场文书
公司经营目标责任书
2015/01/29 职场文书
财政局长个人总结
2015/03/04 职场文书
任长霞观后感
2015/06/16 职场文书
详解MySQL中的pid与socket
2021/06/15 MySQL
Python作用域和名称空间的详细介绍
2022/04/13 Python