2016-04-06 19 views
0

Jungs Ich bin neu in Python, aber ich versuche, meine Windows 8 Informationen mit Python zu bekommen. Aber ich kann das nicht, ich kann die Ausgabe des folgenden Codes nicht finden. Es zeigt nichts an. Ich benutze Netbeans.Kann keine Ausgabe anzeigen

# To change this license header, choose License Headers in Project Properties. 
# To change this template file, choose Tools | Templates 
# and open the template in the editor. 
if __name__ == "__main__": 

    import os 
    import re 

def sys_info(): 
    values = {} 
    cache = os.popen2("SYSTEMINFO") 
    source = cache[1].read() 
    sysOpts = ["Host Name", "OS Name", "OS Version", "Product ID", "System Manufacturer", "System Model", "System type", "BIOS Version", "Domain", "Windows Directory", "Total Physical Memory", "Available Physical Memory", "Logon Server"] 

    for opt in sysOpts: 
     values[opt] = [item.strip() for item in re.findall("%s:\w*(.*?)\n" % (opt), source, re.IGNORECASE)][0] 
    return values 
    if values == null : 
     print "yep" 
     print (values) 
+0

sys_info ist definiert, wird aber nie aufgerufen, daher ist nichts zu drucken – manu190466

Antwort

0

Zu allererst Ihre Platzierung, wenn import, function und main sind in der richtigen Reihenfolge.

ist hier richtige Reihenfolge

import os 
import re  

def SysInfo(): 
    values = {} 
    cache = os.popen2("SYSTEMINFO") 
    source = cache[1].read() 
    sysOpts = ["Host Name", "OS Name", "OS Version", "Product ID", "System Manufacturer", "System Model", "System type", "BIOS Version", "Domain", "Windows Directory", "Total Physical Memory", "Available Physical Memory", "Logon Server"] 

    for opt in sysOpts: 
     values[opt] = [item.strip() for item in re.findall("%s:\w*(.*?)\n" % (opt), source, re.IGNORECASE)][0] 
    return values 


if __name__ == "__main__": 
    SysInfo() 

auch danach wird der Code keine Ausgabe zu erzeugen. Ich habe windows 2010 und python 2.7. Ich frage mich, ob es mit OS version zu tun hat. Ich bin nicht Windows-versiert, also kann ich das nicht beantworten.

Allerdings, wenn Ihr Ziel ist es Windows-System Details zu erhalten, können Sie wmi Modul von
pip install wmi

Dann nutzen Sie folgenden Code bekommen entweder detaillierte Systeminformationen oder einzelne Attribute installieren möchten.

import wmi 

x = wmi.WMI()  
systeminfo = x.Win32_ComputerSystem()[0] 

print systeminfo 
Manufarturer = systeminfo.Manufacturer 
Model = systeminfo.Model 

print "Manufarturer =", Manufarturer 
print "Model =", Model 

Ausgang:

Darin nicht enthalten sind Details von print systeminfo

Manufarturer = Dell Inc. 
Model = Latitude E5430 non-vPro 

können Sie einzelne Attribute im Zusammenhang mit Win32_ComputerSystem class here

0

Sie müssen graben, um die Funktion aufzurufen, die Sie geschrieben haben, .

import os 
import re 

if __name__ == "__main__":  
    def sys_info(): 
     values = {} 
     cache = os.popen2("SYSTEMINFO") 
     source = cache[1].read() 
     sysOpts = ["Host Name", "OS Name", "OS Version", "Product ID", "System Manufacturer", "System Model", "System type", "BIOS Version", "Domain", "Windows Directory", "Total Physical Memory", "Available Physical Memory", "Logon Server"] 

     for opt in sysOpts: 
      values[opt] = [item.strip() for item in re.findall("%s:\w*(.*?)\n" % (opt), source, re.IGNORECASE)][0] 
     return values 
     if values == null : 
      print "yep" 
      print (values) 

    # Now call the function here 
    sys_info()