基于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实现检测服务器是否可以ping通的2种方法
Jan 01 Python
Python使用defaultdict读取文件各列的方法
May 11 Python
解决python文件字符串转列表时遇到空行的问题
Jul 09 Python
基于Python __dict__与dir()的区别详解
Oct 30 Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 Python
python判断输入日期为第几天的实例
Nov 13 Python
Python中xml和json格式相互转换操作示例
Dec 05 Python
python读取目录下最新的文件夹方法
Dec 24 Python
详解Python正则表达式re模块
Mar 19 Python
python opencv调用笔记本摄像头
Aug 28 Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 Python
python类共享变量操作
Sep 03 Python
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
python热力图实现的完整实例
You might like
PHP和XSS跨站攻击的防范
2007/04/17 PHP
php SQL防注入代码集合
2008/04/25 PHP
php提交post数组参数实例分析
2015/12/17 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
pytorch masked_fill报错的解决
2020/02/18 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
家长对老师的评语
2014/04/18 职场文书
青春无悔演讲稿
2014/05/08 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
清洁员岗位职责
2015/02/15 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
高一地理教学工作总结
2015/08/12 职场文书
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python
如何利用python实现列表嵌套字典取值
2022/06/10 Python