最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python讀取Windows和Linux的CPU、GPU、硬盤等部件溫度的讀取方法

 更新時間:2025年02月28日 09:15:03   作者:好好學(xué)習(xí)z  
本文詳細(xì)介紹了如何使用Python在Windows和Linux系統(tǒng)上通過OpenHardwareMonitor和psutil庫讀取CPU、GPU等部件的溫度,包括Windows下的兩種方法以及Linux下的簡單實現(xiàn),感興趣的小伙伴跟著小編一起來看看吧

這篇博客介紹了如何使用Python讀取計算機(jī)的CPU、GPU、硬盤等部件的溫度,讀取后的信息可以根據(jù)需要進(jìn)行日志記錄、溫度監(jiān)控等。

根據(jù)不同的平臺,本文分別介紹Windows下和Linux下的部件溫度讀取方法。

Windows下讀取方法

這種方法僅適用于Windows10,Windows11運(yùn)行會報錯(我原本是在Windows10下寫的代碼,能正常讀取溫度,但是電腦更新到Windows11后運(yùn)行直接就報錯了),至于其他更低版本的Windows系統(tǒng)則沒有測試過。

Windows下讀取計算機(jī)部件的溫度需要用到一款叫做 Open Hardware Monitor 的軟件(下載地址),下載后得到的是一個壓縮包,解壓后的結(jié)果如下:

  • 這里我們主要用到兩個文件(紅色框標(biāo)記),也是利用這個軟件的兩種方法。
  1. 使用 OpenHardwareMonitor.exe
  • 這種方法要求始終在后臺保持 OpenHardwareMonitor.exe 處于運(yùn)行狀態(tài)。
  • 程序運(yùn)行需要管理員權(quán)限??梢栽趩覫DE時便選擇以管理員權(quán)限運(yùn)行。
    以下為代碼:
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}的當(dāng)前溫度為:{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)

輸出示例:

  1. 使用 OpenHardwareMonitorLib.dll
  • 這種方法類似于將 OpenHardwareMonitorLib.dll 作為第三方庫引入到python中。
  • 同樣的,運(yùn)行代碼需要管理員權(quán)限,否則啥都讀不出來。可以在啟動IDE時便選擇以管理員權(quán)限運(yùn)行。
    以下為代碼:
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下讀取方法

  • 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()

輸出示例:

以上就是Python讀取Windows和Linux的CPU、GPU、硬盤等部件溫度的讀取方法的詳細(xì)內(nèi)容,更多關(guān)于Python讀取Windows和Linux部件溫度的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

台北市| 四川省| 公安县| 昭苏县| 察哈| 永德县| 长治县| 康乐县| 嵊州市| 三河市| 拉萨市| 从化市| 汉沽区| 鄱阳县| 林甸县| 聊城市| 浪卡子县| 弥渡县| 文水县| 清流县| 井冈山市| 革吉县| 望奎县| 鹤峰县| 玉田县| 扎鲁特旗| 云霄县| 东兰县| 北海市| 龙陵县| 巍山| 泽普县| 庆城县| 博客| 喀什市| 景宁| 灵石县| 通榆县| 定兴县| 阿拉善盟| 五家渠市|