"индекс списка вне диапазона" - PullRequest
0 голосов
/ 17 июля 2010

Ниже у меня есть следующий код, который должен получить температуру процессора.

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

Это в Windows 7, кстати.

1 Ответ

1 голос
/ 17 июля 2010

Это просто означает, что TemperatureProbe не реализован на вашем компьютере (возможно, ваш поставщик оборудования).

Другой вариант - подключиться к пространству имен root \ WMI и запросить «select * from MSAcpi_ThermalZoneTempera», чтобы вернуть датчики, и вы можете запросить текущую температуру в десятых долях Кельвина. Должен быть похожий API в WMI для Python.

ОБНОВЛЕНИЕ: вот код, который работает:

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
...