2010-07-16 2 views
0

아래에는 CPU 온도를 가져 오는 다음 코드가 있습니다. 내가 그것을 실행하면"목록 인덱스가 범위를 벗어났습니다."

import wmi 
w = wmi.WMI() 
print w.Win32_TemperatureProbe()[0].CurrentReading 

나는 그러나 다음과 같은 경고를 얻을 :

Traceback (most recent call last): 
    File "<string>", line 244, in run_nodebug 
    File "<module1>", line 3, in <module> 
IndexError: list index out of range 

이 BTW, 윈도우 7에 있습니다.

답변

1

이것은 온도 프로브가 컴퓨터 (하드웨어 공급 업체)에 구현되어 있지 않다는 것을 의미합니다.

다른 옵션은 root \ WMI 네임 스페이스에 연결하고 "select * from MSAcpi_ThermalZoneTemperature"를 쿼리하여 프로브를 반환하고 현재 온도의 10 분의 1 켈빈 수를 쿼리 할 수 ​​있습니다. 파이썬의 WMI에는 비슷한 API가 있어야한다.

업데이트 :

In [18]: import wmi 

In [19]: w = wmi.WMI(namespace='root\\wmi') 

In [20]: ti = w.MSAcpi_ThermalZoneTemperature()[0] # first probe 

In [21]: ti.CurrentTemperature 
Out[21]: 3242 
+0

을 어떤 이유로 파이썬에 대한 구문을 좋아하지 않는 것 : 여기에서 작동하는 일부 코드입니다. – rectangletangle

+0

유일한 것은 누락 된 "가져 오기 wmi"입니다 - 나는 이미 위에 게시 된 코드에 있다고 가정했습니다. 그렇지 않으면 파이썬 터미널에서 바로 복사/붙여 넣기됩니다. 여기에 실제 오류 메시지가 표시되면 내가 너의 잘못을 파악하는 데 도움이 될지도 모른다. – ars

관련 문제