2017-06-26 1 views
1

Dies ist der Code, den ich derzeit habe, zieht die Prozessoren aus dem Befehl 'Systeminfo' in Windows. Ich bin auf der Suche nach einer mehr pythischen Art, dies zu tun.Gibt es einen besseren Weg, dies in Python zu tun? Ich versuche, Windows 'Systeminfo' Befehl zu analysieren

Ergebnisse sind eine Liste von Zeilen von system Spaltung von ‚\ r \ n‘

Vielen Dank im Voraus!

processor_index = [i for i, s in enumerate(result) if 'processor(s)' in s.lower()] 
processor_number = ''.join(result[processor_index[0]]).split(':')[1].lstrip().strip(' ')[0] 
print ('processors = '+ str(processor_number)) 

processors = '' 
for i in range(1, int(processor_number)+1): 
    processors += str(result[int(processor_index[0])+i]).lstrip()+',' 

print (processors[:-1]) 

EDIT: Vielen Dank für die Antworten, sehr hilfreich :) Gibt es eine Möglichkeit, die BIOS-Version als auch zu bekommen, denn dies ist der Hauptgrund, warum ich den system Befehl benötigen. Ich mache dasselbe mit der Ausgabe des Befehls 'systeminfo', um diese BIOS-Version zu erhalten.

+0

Die BIOS-Version Strings aus der Registrierung erhalten werden können, beispielsweise 'import winreg;' 'key = winreg.OpenKey (winreg.HKEY_LOCAL_MACHINE, r'Hardware \ Beschreibung \ System ');' 'bios_version_strings = winreg.QueryValueEx (Schlüssel,' SystemBiosVersion ') [0]'. – eryksun

+0

Ich habe einen anderen Weg, danke! Ich poste es hier für mehr Leute, wenn ich morgen zur Arbeit komme – BaroqueViolin

+0

Ein anderer Weg ist über die WMI 'Win32_BIOS' Klasse, die über Pythons' wmi' Modul oder das Befehlszeilenprogramm wmic.exe benutzt wird. Aber letztendlich ist es das Gleiche. – eryksun

Antwort

2

Es gibt eine Reihe von Optionen, basierend auf welche Informationen Sie

benötigen
import platform 
platform.processor() 
# returns 'Intel64 Family 6 Model 26 Stepping 5, GenuineIntel' on my PC 
platform.machine() 
# 'AMD64' 
platform.architecture() 
# ('64bit', 'WindowsPE') 

import multiprocessing 
multiprocessing.cpu_count() 
# 16 

import psutil 
psutil.cpu_count() 
# 16 
psutil.cpu_count(logical=False) 
# 8 
2

Installieren Sie die verschiedenen Leckereien für Windows, einschließlich Win32.

>>> import win32api 
>>> win32api.GetSystemInfo() 
(9, 4096, 65536, 140737488289791, 15, 4, 8664, 65536, (6, 14857)) 

Die Dokumentation für diese:

Return Value 
The return value is a tuple of 9 values, which corresponds to the Win32 SYSTEM_INFO structure. The element names are: 
wProcessorArchitecture 
dwPageSize 
lpMinimumApplicationAddress 
lpMaximumApplicationAddress 
dwActiveProcessorMask 
dwNumberOfProcessors 
dwProcessorType 
dwAllocationGranularity 
(wProcessorLevel,wProcessorRevision) 
+0

Auf Kosten einer offensichtlichen Aussage ist dies Windows-spezifisch. OP, dies ist wahrscheinlich die beste und vollständigste Route, wenn Sie Windows verwenden. Wenn Sie nach allgemeineren Informationen suchen und möglicherweise mehrere Betriebssysteme verwenden, ist eine der allgemeineren Optionen wahrscheinlich eine bessere Wahl. –

+0

Natürlich ist @AlexAlifimoff korrekt. –

Verwandte Themen