深圳网站建设手机网站建设,标书制作费用一般多少,wordpress json api 插件,手表网站大全本文的主要目的是演示如何借助 Python 中的 pythonnet 库读取和显示 CPU 温度。 Python获取CPU温度
根据您正在设计的应用程序类型#xff0c;您可能希望监视运行该程序的机器的资源。
由于多种原因#xff0c;可能会出现这种情况。 也许您需要您的程序在系统资源达到特定阈…本文的主要目的是演示如何借助 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-loader0.3.0,0.2.2 in c:\program files\python310\lib\site-packages (from pythonnet) (0.2.4)
Requirement already satisfied: cffi1.13 in c:\program files\python310\lib\site-packages (from clr-loader0.3.0,0.2.2-pythonnet) (1.15.1)
Requirement already satisfied: pycparser in c:\program files\python310\lib\site-packages (from cffi1.13-clr-loader0.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.dllclr.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