Python获取CPU温度
本文的主要目的是演示如何借助 Python 中的 pythonnet 库读取和显示 CPU 温度。
Python获取CPU温度
根据您正在设计的应用程序类型,您可能希望监视运行该程序的机器的资源。
由于多种原因,可能会出现这种情况。 也许您需要您的程序在系统资源达到特定阈值时以特定方式运行。
用例可能因程序而异。
在这些系统资源中,CPU 温度在特定应用程序和用例中具有重要意义。
也许您的程序使 CPU 过度紧张并占用了许多不必要的资源。 您可能希望采取措施缓解此问题,因此您可能需要监控不同机器组件的温度,CPU 就是其中之一。
为了解决这个具体问题,我们可以使用 OpenHardwareMonitor 提供的 DLL(动态链接库)。
本节可分为以下几个部分:
- 安装
- 代码实现
- 监视器
安装
首先,我们需要下载 pythonnet 才能与 DLL 交互。 为此,请在终端中执行以下命令。
pip install pythonnet
这将给出以下输出:
Collecting pythonnetDownloading pythonnet-3.0.0.post1-py3-none-any.whl (279 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 279.4/279.4 kB 639.3 kB/s eta 0:00:00
Requirement already satisfied: clr-loader<0.3.0,>=0.2.2 in c:\program files\python310\lib\site-packages (from pythonnet) (0.2.4)
Requirement already satisfied: cffi>=1.13 in c:\program files\python310\lib\site-packages (from clr-loader<0.3.0,>=0.2.2->pythonnet) (1.15.1)
Requirement already satisfied: pycparser in c:\program files\python310\lib\site-packages (from cffi>=1.13->clr-loader<0.3.0,>=0.2.2->pythonnet) (2.21)
Installing collected packages: pythonnet
Successfully installed pythonnet-3.0.0.post1
成功安装 pythonnet 后,就该下载 OpenHardwareMonitor 了。 从这里下载软件。
下载完成后,安装应用程序。 之后:
- 转到安装 OpenHardwareMonitor 的目录。
- 从文件夹中的文件中找到 OpenHardwareMonitorLib.dll。
- 复制到你想要的文件夹,最好是你的 python 脚本的存储位置。
代码实现
安装过程完成后,就该实现实际的代码了。
考虑以下代码:
import clr #package pythonnet, not clropenhardwaremonitor_sensortypes = ['Voltage','Clock','Temperature','Load','Fan','Flow','Control','Level','Factor','Power','Data','SmallData']def initialize_openhardwaremonitor():file = 'D:\\Path_TO_DLL\\OpenHardwareMonitorLib.dll'clr.AddReference(file)from OpenHardwareMonitor import Hardwarehandle = Hardware.Computer()handle.MainboardEnabled = Truehandle.CPUEnabled = Truehandle.RAMEnabled = Truehandle.GPUEnabled = Truehandle.HDDEnabled = Truehandle.Open()return handledef fetch_stats(handle):for i in handle.Hardware:i.Update()for sensor in i.Sensors:parse_sensor(sensor)for j in i.SubHardware:j.Update()for subsensor in j.Sensors:parse_sensor(subsensor)def parse_sensor(sensor):hardwaretypes = openhardwaremonitor_hwtypesif sensor.Value is not None:if str(sensor.SensorType) == 'Temperature':print(u"%s %s Temperature Sensor #%i %s - %s\u00B0C" % (hardwaretypes[sensor.Hardware.HardwareType], sensor.Hardware.Name, sensor.Index, sensor.Name, sensor.Value))if __name__ == "__main__":print("OpenHardwareMonitor:")HardwareHandle = initialize_openhardwaremonitor()fetch_stats(HardwareHandle)
使用 clr 模块,我们可以与名为 OpenHardwareMonitorLib.dll 的 .NET DLL 进行交互。 我们可以在我们的 Python 代码中继续使用它的功能和属性,最终读取我们可能希望查看的 CPU 和其他组件的温度。
关于每个属性代表什么以及作用的详细介绍,可以参考Github上OpenHardwareMonitor的文档。
对于任何其他自定义功能,建议查看代码以更好地理解和洞察代码的内部工作原理。
监视器
编写完代码后,就该执行程序了。 请记住,您需要以管理员身份运行此脚本; 否则,代码将无法正常运行,并且可能无法正确显示或根本不显示必要的读数。
打开命令提示符或您选择的任何终端并执行脚本。 对于上面的代码,以管理员身份运行时会显示以下输出:
OpenHardwareMonitor: CPU Intel Core i7-4800MQ Temperature Sensor #0 CPU Core #1 - 60.0°C CPU Intel Core i7-4800MQ Temperature Sensor #1 CPU Core #2 - 66.0°C CPU Intel Core i7-4800MQ Temperature Sensor #2 CPU Core #3 - 58.0°C CPU Intel Core i7-4800MQ Temperature Sensor #3 CPU Core #4 - 58.0°C CPU Intel Core i7-4800MQ Temperature Sensor #4 CPU Package - 66.0°C GpuNvidia NVIDIA Quadro K1100M Temperature Sensor #0 GPU Core - 43.0°C HDD ST500LT012-9WS142 Temperature Sensor #0 Temperature - 37.0°C
相关文章:
Python获取CPU温度
本文的主要目的是演示如何借助 Python 中的 pythonnet 库读取和显示 CPU 温度。 Python获取CPU温度 根据您正在设计的应用程序类型,您可能希望监视运行该程序的机器的资源。 由于多种原因,可能会出现这种情况。 也许您需要您的程序在系统资源达到特定阈…...
后端整理(MySql)
1 事务 1.1 事务ACID原则 原子性(Atomicity) 事务的原子性指的是事务的操作,要么全部成功,要么全部失败回滚 一致性(Consistency) 事务的一致性是指事务必须使数据库从一个一致状态转变成另一个一致性…...
HashSet的详细介绍
一、HashSet整体介绍 HashSet 是 Java 中的一个集合类,它实现了 Set 接口,用于存储不重复的元素。它是基于哈希表的数据结构实现的。 HashSet 的特点如下: 不允许存储重复的元素:HashSet 中的元素是唯一的,如果尝试…...
【SCI征稿】JCR1区,中科院2区,有关大数据、人工智能、机器学习的应用研究均可
期刊简介: 【出版社】Elsevier 【影响因子】IF(2022):6.5-7.0 【期刊分区】JCR1区,中科院2区 【检索情况】SCIE 在检,正刊 【参考周期】期刊部系统内提交,预计3-5个月左右录用,…...
【UE】AI导航,多个导航物体无法走到同一终点问题
如不需要开启导航物体的碰撞,则需要关闭Use RVOAvoidance 不然会导致多个导航物体无法到达同一个目标点,都在附近晃。无法结束寻路。 ue小白,判定导航终点的半径,没有找到。如果有大佬知道怎么设置请在评论区指出,谢…...
途游游戏 x 极狐GitLab “通关” DevOps :单元测试从无到优,覆盖率 0→80%
目录 4 个工具孤岛 → 极狐GitLab 全家桶, 被动的「人找进度」 → 高效的「进度找人」 把 Code Review 做扎实 代码质量「向左移」,修复成本「往下降」 从无到「优」 自动执行单元测试,覆盖率 0→80% 你喜欢玩游戏吗? 最近…...
【云原生】Docker-Compose全方面学习
目录 1.compose简介 Compose V2 2.compose安装与下载 二进制包 PIP 安装 bash 补全命令 卸载 3.docker compose管理命令 命令对象与格式 命令选项 命令使用说明 1.compose简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可…...
基于 Redux + TypeScript 实现强类型检查和对 Json 的数据清理
基于 Redux TypeScript 实现强类型检查和对 Json 的数据清理 突然像是打通了任督二脉一样就用了 generics 搞定了之前一直用 any 实现的类型…… 关于 Redux 的部分,这里不多赘述,基本的实现都在这里:Redux Toolkit 调用 API 的四种方式 和…...
HIVE语法优化之Join优化
桶用两表关联字段,MapJoin时需要将小表填入内存,这时候,分桶就起到了作用 一个stage阶段代表一个mr执行,好几个MR,会吧每一个MR的结果都压缩 Mysql 慢查询 如果sql语句执行超过指定时间,定义该sql为慢查询,存储日志, 查问题: SQL日志,模拟慢SQL 然后查询执行计划 分组聚合 就…...
如何申请境内金融信息服务报备
依据《金融信息服务管理规定》等要求,开展境内金融信息服务报备工作事项如下: 一、报备对象及要求 金融信息服务,是指向从事金融分析、金融交易、金融决策或者其他金融活动的用户提供可能影响金融市场的信息和(或者)…...
VS code:Task
Task 微软官方连接: https://code.visualstudio.com/docs/editor/tasks what is Task 我们知道,vscode可以支持许多编程语言,很多语言是需要进行编译的,打包,测试… 有许多已有的工具支持这些流程,例如A…...
《Java-SE-第三十章》之哲学家就餐问题
前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水平很有限&…...
关于接口测试用例设计的一些思考
接口测试发现的典型问题 传入参数处理不当,引起程序错误类型溢出,导致数据读取和写入不一致对象权限校验出错,可获取其他角色信息状态出错,导致逻辑处理出现问题逻辑校验不完善定时任务执行出错 接口测试用例设计 接口测试用例…...
gin和gorm框架安装
理论上只要这两句命令 go get -u gorm.io/gorm go get -u github.com/gin-gonic/gin然而却出现了问题 貌似是代理问题,加上一条命令 go env -w GOPROXYhttps://goproxy.cn,direct 可以成功安装 安装gorm的数据库驱动程序 go get -u gorm.io/driver/mysql...
今天小编继续给大家分享五款高效的电脑宝藏软件
目录 1、keytweak 2、ScreenToGif 3、Greenshot截屏工具 4、GIMP 5、HandBrake 1、keytweak keytweak 简单来说就是一个键盘按键修改器,说白了就是一个键盘按键重映射的软件。比如你键盘上的Q不好用了,你可以更换成一个不常见的按键来代替Q键&#x…...
SQL Server数据库如何添加mysql链接服务器(Windows系统)
SQL Server数据库如何添加mysql链接服务器(Windows系统) 一、说明二、下载mysql的odbc驱动三、安装mysql odbc四、配置ODBC4.1 控制面板→ODBC数据源(64位)→双击打开4.2 添加msql odbc数据源 五、测试添加是否成功六、打开SSMS&a…...
scala连接mysql数据库
scala中通常是通过JDBC组件来连接Mysql。JDBC, 全称为Java DataBase Connectivity standard。 加载依赖 其中包含 JDBC driver <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29&l…...
datax-web登陆时出现账号密码错误
在查找问题时,在admin里面查看日志时: 目录的位置:datax-web-2.1.2/modules/datax-admin/bin/console.out 发现了java程序没有跑起来,解决对应的bug问题即可,一般都是数据库连接的问题,可能和使用的数据库版…...
Redis 和 MySQL如何保证数据一致性
场景分析 Redis 用来实现应用和数据库之间读操作的缓存层,主要目的是减少数据库 IO ,还可以提升数据的 IO 性能。当应用程序需要去读取某个数据的时候,首先会先尝试去 Redis 里面加载,如果命中就 直接返回。如果没有命中…...
VR虚拟仿真技术在道路桥梁中有哪些具体应用?
虚拟现实(VR)是一种新兴的技术,可以为桥梁工程提供许多应用场景。以下是一些可能的应用场景: 1.桥梁设计和模拟 VR元宇宙可以用于桥梁的设计和模拟。工程师可以使用VR技术来创建桥梁的三维模型,并对其进行测试和优化。这可以帮助工程师更好地…...
电源PFC入门 TI单相三相维也纳VIENNA整流器无桥 原理图PCB资料 一个PFC设计案例...
电源PFC入门 TI单相三相维也纳VIENNA整流器无桥 原理图PCB资料 一个PFC设计案例,大量的PFC相关的资料。 注意:设计案例无核心小板。电源设计里PFC总像个磨人的小妖精,尤其是做工业级大功率设备的时候。最近折腾TI的维也纳整流器方案发现&…...
Solving Matplotlib‘s Font Fallback: From DejaVu Sans to SimHei for CJK Support
1. 为什么Matplotlib会显示DejaVu Sans字体警告? 当你第一次在Matplotlib中尝试绘制包含中文的图表时,大概率会遇到这个熟悉的警告:"UserWarning: Glyph XXXX missing from font(s) DejaVu Sans"。这个看似简单的提示背后ÿ…...
从广播风暴到安全隔离:用Wireshark抓包分析VLAN工作原理(实验对比版)
从广播风暴到安全隔离:用Wireshark抓包分析VLAN工作原理(实验对比版) 当你按下回车键发送一个广播消息时,这个数据包会像野火一样蔓延到整个网络——至少在没有VLAN的传统以太网中是这样。我曾亲眼见证过一个简单的ARP请求如何拖垮…...
如何高效使用Zotero PDF翻译插件:完整教程与实用指南
如何高效使用Zotero PDF翻译插件:完整教程与实用指南 【免费下载链接】zotero-pdf2zh PDF2zh for Zotero | Zotero PDF中文翻译插件 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-pdf2zh Zotero PDF2zh是一款专为学术研究者设计的开源PDF翻译插件&am…...
塞尔达传说存档定制指南:打造个性化游戏体验
塞尔达传说存档定制指南:打造个性化游戏体验 【免费下载链接】BOTW-Save-Editor-GUI A Work in Progress Save Editor for BOTW 项目地址: https://gitcode.com/gh_mirrors/bo/BOTW-Save-Editor-GUI 在海拉鲁大陆的冒险中,你是否曾因资源匮乏而错…...
新手避坑指南:用STLink-V2给STM32F103RCT6烧录程序,从CubeMX配置到Keil调试全流程
STM32开发实战:从CubeMX配置到Keil调试的完整避坑手册 第一次接触STM32开发时,那种既兴奋又忐忑的心情我至今记忆犹新。看着手边的STLink-V2调试器和STM32F103RCT6开发板,明明按照教程一步步操作,却总在某个环节卡住——驱动死活装…...
用快马快速构建排序算法可视化原型,直观比较性能差异
最近在复习算法基础时,发现单纯看代码很难直观理解不同排序算法的差异。于是尝试用InsCode(快马)平台快速搭建了一个排序算法可视化工具,整个过程比想象中简单很多,分享下具体实现思路。 需求分析 首先明确需要展示五种经典排序算法ÿ…...
5分钟搞定HeyGem数字人视频生成:科哥二次开发版,批量处理指南
5分钟搞定HeyGem数字人视频生成:科哥二次开发版,批量处理指南 1. 系统简介与核心价值 HeyGem数字人视频生成系统批量版是科哥基于原版进行的二次开发版本,专门针对企业级批量视频生成需求进行了优化。这个工具能够将一段音频与多个视频素材…...
告别重复造轮子:用快马一键生成可扩展的高效ibbot开发框架
最近在开发一个智能对话机器人(ibbot)时,发现每次从零开始搭建框架都要重复处理很多基础工作。经过一番探索,我发现用InsCode(快马)平台可以快速生成可扩展的项目框架,效率提升非常明显。下面分享下我的实践心得&#…...
如何快速安装和配置Pop Shell:面向初学者的完整教程
如何快速安装和配置Pop Shell:面向初学者的完整教程 【免费下载链接】shell Pop!_OS Shell 项目地址: https://gitcode.com/gh_mirrors/sh/shell Pop Shell是一款功能强大的窗口管理扩展,专为提升Linux桌面操作效率设计。本教程将带您逐步完成Pop…...
