基于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编程中三条常用的技巧
May 11 Python
Python简明入门教程
Aug 04 Python
详解Python中的from..import绝对导入语句
Jun 21 Python
python 简单的绘图工具turtle使用详解
Jun 21 Python
Flask框架学习笔记之使用Flask实现表单开发详解
Aug 12 Python
python控制台实现tab补全和清屏的例子
Aug 20 Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 Python
如何理解及使用Python闭包
Jun 01 Python
Python OpenCV 彩色与灰度图像的转换实现
Jun 05 Python
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
python热力图实现的完整实例
You might like
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
ECMAScript5(ES5)中bind方法使用小结
2015/05/07 Javascript
用svg制作富有动态的tooltip
2015/07/17 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
JS实现滑动插件
2020/01/15 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
详细介绍Python语言中的按位运算符
2013/11/26 Python
Python smallseg分词用法实例分析
2015/05/28 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
django和flask哪个值得研究学习
2020/07/31 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
卖房协议书
2014/04/11 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
校本课程教学计划
2015/01/19 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
分享Python获取本机IP地址的几种方法
2022/03/17 Python