“列表索引超出范围”

时间:2010-07-16 23:26:56

标签: python windows wmi cpu

下面我有以下代码来获取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

这是在Windows 7中,顺便说一句。

1 个答案:

答案 0 :(得分:1)

这仅表示您的计算机(可能是您的硬件供应商)上未实现TemperatureProbe。

您的另一个选择是连接到根\ WMI命名空间并查询“select * from MSAcpi_ThermalZoneTemperature”,它将返回探针,您可以查询当前温度,以十分之一的开尔文。 python的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