반응형
파이썬으로 윈도우 CPU/GPU 온도 가져오기 (Python get cpu temperature windows 10)

파이썬으로 윈도우 CPU/GPU 온도 가져오는 방법 입니다. 파이썬 3.9가 설치되어있는 환경을 기준으로 설명을 진행 합니다.

 

1. wmi 설치

아래 명령어를 사용해 wmi 모듈을 설치 해주세요.

pip install wmi

 

2. Open Hardware Monitor 설치

윈도우의 CPU/GPU 온도를 가져오기 위해 Open Hardware Monitor를 설치 해주어야 합니다. 아래 링크에서 설치 후 OpenHardwareMonitor.exe를 실행 해주세요.

다운로드 링크 : https://openhardwaremonitor.org/downloads/

* 재부팅 시 자동 실행이 안될 수 있으므로 Ctrl+R → shell:startup → 해당 폴더에 OpenHardwareMonitor.exe 파일 복사 붙여넣기 해주셔야 합니다.

 

3-1. CPU/GPU 온도 출력하기
import wmi

result=[]

w = wmi.WMI(namespace="root\OpenHardwareMonitor")
temperature_infos = w.Sensor()
for sensor in temperature_infos:
    if sensor.SensorType=='Temperature':
        temperature=(sensor.Name, sensor.Value)        
        if temperature[0].startswith("CPU"):            
        	result.append(temperature)
        elif temperature[0].startswith("GPU"):
            result.append(temperature)
print(result)

 

3-2. CPU/GPU 온도를 하나의 파일에 저장하기

아래 경로만 수정 해주시면 됩니다.

import wmi

w = wmi.WMI(namespace="root\OpenHardwareMonitor")
temperature_infos = w.Sensor()
for sensor in temperature_infos:
    if sensor.SensorType=='Temperature':
        temperature=(sensor.Name, sensor.Value)
        if temperature[0].startswith("CPU"):
            with open(r'D:\\Zabbix\temperature_CPU.txt', 'a') as file:
                file.write(str(temperature))
                file.write("\n")
        elif temperature[0].startswith("GPU"):
            result.append(temperature)
            with open(r'D:\\Zabbix\temperature_GPU.txt', 'a') as file:
                file.write(str(temperature))
                file.write("\n")

 

3-3. CPU/GPU 온도를 여러개의 파일로 저장하기 

아래 경로만 수정 해주시면 됩니다.

import wmi

cpu_count=0
gpu_count=0

w = wmi.WMI(namespace="root\OpenHardwareMonitor")
temperature_infos = w.Sensor()
for sensor in temperature_infos:
    if sensor.SensorType=='Temperature':
        temperature=(sensor.Name, sensor.Value)
        if temperature[0].startswith("CPU"):
            with open(r'D:\\Zabbix\temperature_CPU' + str(cpu_count) + '.txt', 'a') as file:
                file.write(str(temperature))
                file.write("\n")
                cpu_count+=1
        elif temperature[0].startswith("GPU"):
            result.append(temperature)
            with open(r'D:\\Zabbix\temperature_GPU' + str(gpu_count) + '.txt', 'a') as file:
                file.write(str(temperature))
                file.write("\n")
                gpu_count+=1

실행 결과

 

또는 아래와 같이 온도 부분만 짤라서 사용할 수 있습니다.

import wmi

result=[]
cpu_count=0
gpu_count=0

w = wmi.WMI(namespace="root\OpenHardwareMonitor")
temperature_infos = w.Sensor()
for sensor in temperature_infos:
    if sensor.SensorType=='Temperature':
        temperature=(sensor.Name, sensor.Value)
        if temperature[0].startswith("CPU"):
            with open(r'C:\\Zabbix\temperature_CPU' + str(cpu_count) + '.txt', 'a') as file:
                file.write(str(temperature)[-5:-1])
                file.write("\n")
                cpu_count+=1
        elif temperature[0].startswith("GPU"):
            with open(r'C:\\Zabbix\temperature_GPU' + str(gpu_count) + '.txt', 'a') as file:
                file.write(str(temperature)[-5:-1])
                file.write("\n")
                gpu_count+=1
반응형

+ Recent posts