这种方法仅适用于Windows10,Windows11运行会报错(我原本是在Windows10下写的代码,能正常读取温度,但是电脑更新到Windows11后运行直接就报错了),至于其他更低版本的Windows系统则没有测试过。
-
使用 OpenHardwareMonitor.exe
-
这种方法要求始终在后台保持 OpenHardwareMonitor.exe 处于运行状态。
-
程序运行需要管理员权限。可以在启动IDE时便选择
以管理员权限运行
。
以下为代码:
import ctypes
import datetime
import sys
import time
import wmi
import psutil
import subprocess
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except Exception:
return False
def check_process(path, proc_name):
for proc in psutil.process_iter():
if proc.name() == proc_name:
break
else:
subprocess.Popen(path + proc_name)
time.sleep(5)
if is_admin():
path = 'openhardwaremonitor-v0.9.6/OpenHardwareMonitor/'
proc_name = "OpenHardwareMonitor.exe"
check_process(path, proc_name)
w = wmi.WMI(namespace='root/OpenHardwareMonitor')
while True:
print('{:=^50}'.format(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
temperature_info = w.Sensor()
temperature_info = sorted(temperature_info, key=lambda x: str(x.Identifier))
for sensor in temperature_info:
if sensor.SensorType == 'Temperature':
identifier = str(sensor.Identifier).split('/')
print(
'{0:^20}的当前温度为:{1:>5}℃'.format('-'.join([identifier[1], identifier[2], identifier[-1]]),
sensor.Value))
time.sleep(1)
else:
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)
输出示例:

- 使用 OpenHardwareMonitorLib.dll
- 这种方法类似于将 OpenHardwareMonitorLib.dll 作为第三方库引入到python中。
- 同样的,运行代码需要管理员权限,否则啥都读不出来。可以在启动IDE时便选择
以管理员权限运行
。
以下为代码:
import clr
import time
import datetime
clr.AddReference('D:/OpenHardwareMonitor/OpenHardwareMonitorLib.dll')
import OpenHardwareMonitor as ohm
from OpenHardwareMonitor.Hardware import Computer, HardwareType, SensorType
computer = Computer()
computer.CPUEnabled = True
computer.GPUEnabled = True
computer.HDDEnabled = True
computer.RAMEnabled = True
computer.MainboardEnabled = True
computer.FanControllerEnabled = True
hardwareType = ohm.Hardware.HardwareType
sensorType = ohm.Hardware.SensorType
computer.Open()
while True:
print('{:=^50}'.format(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
for hardware in computer.Hardware:
hardware.Update()
for sensor in hardware.Sensors:
if sensor.SensorType == sensorType.Temperature:
si_ls = str(sensor.Identifier).split('/')
ssname = f'{si_ls[1]}#{si_ls[-1]}'
print(ssname, sensor.Value)
time.sleep(1)
输出示例:

- Linux下读取部件温度的方法比较简单,直接使用 psutil 包即可。代码如下:
import psutil
def main():
if not hasattr(psutil, "sensors_temperatures"):
sys.exit("platform not supported")
temps = psutil.sensors_temperatures()
if not temps:
sys.exit("can't read any temperature")
for name, entries in temps.items():
print(name)
for entry in entries:
print(" %-20s %s °C (high = %s °C, critical = %s °C)" % (
entry.label or name, entry.current, entry.high,
entry.critical))
print()
main()
输出示例:

原创不易,麻烦大家点个关注收藏评论支持一下~~
客户使用了我司的COMe模块,安装了window10操作系统,客户需要在系统下获取CPU的温度,COMe模块本身是有提供SDK API接口供客户二次开发,但是客户想使用,基于此向客户提供了通过使用Python方式获取CPU温度的方法,以下为在普通的笔记本环境下做的验证。在python下调用dll库文件需要用到pythonnet库,所以需要先安装一下pythonnet库;以管理员身份运行cmd窗口,切换到test.py文件所在的路径下,执行python test.py即可获取到cpu温度。
在编程中,我们可以使用适当的库和工具来获取计算机硬件信息,包括显卡的温度。本文将介绍如何使用Python编程语言来获取显卡的温度。库,我们可以轻松地获取显卡的温度信息,并在自己的程序中进行进一步处理和分析。请注意,显卡温度的单位是摄氏度(°C)。库来获取显卡的数量和温度信息。首先,我们需要安装适当的库来获取显卡温度。在Python中,常用的库是。这就是使用Python编程语言查看显卡温度的基本过程。安装完成后,我们需要在代码中导入所需的库。在程序结束时,我们应该清理使用的资源。
疫情卡在宿舍,无奈笔记本灰太多缺少清灰工具,电脑散热太拉,开着cad一天之后经常蓝屏:(
因此借鉴该网站资料:Python使用pynvml查看GPU信息,写了一份监控电脑gpu的温度的小程序,在此做为摸鱼记录。
官网文档文件:需要翻墙才能查阅
import pynvml
import time
while 1:
pynvml.nvmlInit() # 初始化
# 获取GPU i的handle,后续通过handle来处理
handle = pynvml.nvmlDevi
本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。