列表索引超出范围

0 投票
1 回答
912 浏览
提问于 2025-04-16 01:25

下面我有一段代码,目的是用来获取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

撰写回答