2012-05-27 73 views
3

哪個python模塊用於讀取WINDOWS中的CPU溫度和處理器風扇速度..?哪個python模塊用於讀取WINDOWS中的CPU溫度和處理器風扇速度..?

探索WMI python模塊,我怎麼能找到正確的選項或功能來捕獲上述信息。

其實我試過下面的代碼片斷,但它返回'沒有'。

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

請給出一些建議,以獲得這些信息。

BR, -Srk

+0

可能的重複http://stackoverflow.com/questions/2440511/getting-cpu-temperature-using-python和http://stackoverflow.com/questions/3262603/accessing-cpu-temperature-in-python – RanRag

+0

This只有以管理員身份運行時纔有效[http://stackoverflow.com/a/33905500/3500406](http://stackoverflow.com/a/33905500/3500406) – Neamerjell

回答

2

作爲每Microsoft's MSDN

大多數該Win32_TemperatureProbe WMI類 提供來自SMBIOS的信息。無法從SMBIOS表中提取CurrentReading 屬性的實時讀數。 由於這個原因, WMI的當前實現不會填充CurrentReading 屬性。 CurrentReading屬性的存在保留爲將來使用的 。

您可以使用MSAcpi_ThermalZoneTemperature代替:

import wmi 

w = wmi.WMI(namespace="root\\wmi") 
print (w.MSAcpi_ThermalZoneTemperature()[0].CurrentTemperature/10.0)-273.15 
+0

謝謝您的解決方案。是否有可能使用Python讀取CPU - FAN SPEED ..? – msgsrk

+0

當我嘗試這樣做時,我會遇到一堆「意外的」OLE/COM異常,爲什麼會這樣呢? – Dan

+0

查看異常錯誤代碼以獲取更多信息 – Boud

0

這完美的作品:

import wmi 

w = wmi.WMI(namespace="root\\wmi") 
print (w.MSAcpi_ThermalZoneTemperature()[0].CurrentTemperature/10.0) - 273.15 

確保您正在運行的程序作爲管理員,否則會失敗或放棄錯誤代碼時試圖測試/運行/執行你的代碼。