Der Zugriff auf die CPU-Temperatur in python
Ich brauche ein Beispiel-code für den Zugriff auf die CPU-Temperatur in python.
Ich bin mit windows 7, BTW.
InformationsquelleAutor der Frage rectangletangle | 2010-07-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die WMI-Modul + Open Hardware Monitor + die WMI-Schnittstelle hier beschrieben.
Beispielcode:
InformationsquelleAutor der Antwort eadmaster
Können Sie pywin32 Zugriff auf die native Windows API. Ich glaube, es sollte möglich sein, die Abfrage der Windows-API für die CPU-Temperatur, wenn der Hersteller die für Ihr mainboard-Treiber-Register a WMI Data Provider, durch deren Treiber. Vorausgesetzt dies ist der Fall, Sie könnten download der pywin32-Erweiterungen und die Python-WMI-Modul erwähnt in der Antwort von ars, und dann gehen Sie wie folgt vor:
Blick auf die IronPython-Skript in die ars' beantworten, es scheint ein weiterer Weg, es zu tun, mit einem anderen WMI-Objekt. Mit der gleichen API und Ansatz, könnten Sie versuchen, den Empfang der Temperatur-Wert mit
denen offenbar zurückgeben sollte die Temperatur in Zehntel Kelvin, so erhalten Sie den Grad in Celsius ich Schätze, dass Sie einfach nur dividieren Sie diesen Wert durch 10 und subtrahieren ~273.
InformationsquelleAutor der Antwort Heap
Check-out die cputemp Bibliothek.
EDIT: unter windows werden Sie möglicherweise in der Lage zu konvertieren, das IronPython-Skriptdas WMI verwendet, mit Hilfe der python -WMI-Bibliothek.
InformationsquelleAutor der Antwort ars
Code angeboten von eadmaster kann arbeiten für ältere CPUs, OpenHardwareMonitor programmiert worden ist, aber ich habe ein Skylake i7 CPU-6700K. OpenHardwareMonitor angeboten keine Ergebnisse für mich. Es gibt allerdings einen fork von diesem Programm namens CPU-Thermometerdie auf OpenHardwareMonitor die hat erkennt meine CPU.
In der Jagd nach, wie man die CPU-temps über Python, ich wechselte zu IronPython, um Zugriff zu haben auf das .Net framework und haben einen einfachen Zugang zu anderen performance-Daten, aber es sollte ziemlich leicht sein, herauszufinden, wie zu retro passen es für vanilla Python 2.7 (laufen, Nur der CPU-Thermometer statt ofOpenHardwareMonitor und ändern Sie den namespace "root\CPUThermometer"? Könnte es sein, dass einfach?).
Beispiel-Ausgabe:
Fand ich die harte Weise, dass die Abfrage nicht ganz standard-SQL und NICHT WIE die "Order By" - Klausel, so hatte ich zu tun, einige ausgefallene string-Formatierung, um die Reihenfolge korrekt, da die Abfrage gibt die Kerne in umgekehrter Reihenfolge. Das verblüfft mich ein bisschen, bis ich entwickelte diese Art und Weise um ihn herum.
InformationsquelleAutor der Antwort Neamerjell
Download http://openhardwaremonitor.org/downloads/ und http://www.cputhermometer.com/ und extrahieren OpenHardwareMonitorLib.dll und CPUThermometerLib.dll und legen Sie diese in ein Verzeichnis.
Dann können Sie die pythonnet Modul-Adresse .dlls und ziehen Sie jede Statistik, die diese Programme bieten. cputhermometer bietet pro-core CPU temps, openhardwaremonitor bietet alles, was anderes. Keine Notwendigkeit, die WMI verwenden, die verlangt, dass das Programm im hintergrund aktiv.
Ich habe ein kleines script geschrieben (python 3.6.5) zeigen alle Temperatur-sensor auf dem system verfügbar, kann man natürlich leicht ändern, das für andere sensor-Typen. Sie müssen führen Sie diese als administrator:
Hier ist die Ausgabe auf meinen system:
Zur weiteren Dokumentation (aber Sie sollten in der Lage sein zu folgern, alles, was Sie brauchen von den oben genannten code) finden Sie auf der https://github.com/openhardwaremonitor/openhardwaremonitor/ (oder cputhermometer, auf der website) - source-code, Funktionen und Methoden sind identisch, wenn Sie diese mit python.
Ich noch nicht getestet, auch auf allen anderen Computern, so dass verschiedene Prozessor-Architekturen funktionieren möglicherweise nicht identisch.
Sicherzustellen, dass Sie laufen
Hardware[x].Update()
zwischen den Messungen (undSubHardware[x].Update()
wenn nötig).InformationsquelleAutor der Antwort Neo