列表索引超出范围
下面我有一段代码,目的是用来获取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 个回答
1
这只是说明你的机器上没有实现TemperatureProbe(可能是你的硬件供应商的问题)。
另一个选择是连接到root\WMI命名空间,然后查询“select * from MSAcpi_ThermalZoneTemperature”,这样可以返回温度探头的信息,你可以查询当前的温度,单位是开尔文的十分之一。在Python的WMI中应该也有类似的接口。
更新:这里有一些可以用的代码:
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