基于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 ip正则式
May 07 Python
在Django的视图中使用form对象的方法
Jul 18 Python
Python字典简介以及用法详解
Nov 15 Python
教你使用python画一朵花送女朋友
Mar 29 Python
浅析python3字符串格式化format()函数的简单用法
Dec 07 Python
Python实战购物车项目的实现参考
Feb 20 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
Apr 04 Python
Python:type、object、class与内置类型实例
Dec 25 Python
Python利用逻辑回归分类实现模板
Feb 15 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
Apr 16 Python
浅谈keras 模型用于预测时的注意事项
Jun 27 Python
pytorch 多分类问题,计算百分比操作
Jul 09 Python
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
python热力图实现的完整实例
You might like
在php中取得image按钮传递的name值
2006/10/09 PHP
php字符串截取问题
2006/11/28 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
js 设置选中行的样式的实现代码
2010/05/24 Javascript
jQuery创建插件的代码分析
2011/04/14 Javascript
cookie的secure属性详解
2015/04/08 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
微信小程序 出现错误:{"baseresponse":{"errcode":-80002,"errmsg":""}}解决办法
2017/02/23 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
Python 字典dict使用介绍
2014/11/30 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
Python使用pylab库实现绘制直方图功能示例
2018/06/01 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
中国领先的专业演出票务网:永乐票务
2016/08/29 全球购物
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
应届生.NET方向面试题
2015/05/23 面试题
家长学校实施方案
2014/03/15 职场文书
工程催款通知书
2015/04/17 职场文书
大学入学感言
2015/08/01 职场文书
党性修养心得体会2016
2016/01/21 职场文书
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python