2017-09-09 4 views
-4

Ich schrieb ein Programm in Python-3.6.2 auf Windows 10. Ich möchte die CPU-Seriennummer bekommen.Wie erhält man die CPU-Seriennummer unter Windows mit Python?

Hier ist mein Code:

def getserial(): 
    # Extract serial from cpuinfo file 
    cpuserial = "0000000000000000" 
    try: 
     f = open('/proc/cpuinfo','r') 
     for line in f: 
      if line[0:6]=='Serial': 
       cpuserial = line[10:26] 
     f.close() 
    except: 
     cpuserial = "ERROR000000000" 
    return cpuserial 

print(getserial()) 

Wenn ich das Programm ausführen, druckt es: ERROR000000000.

Wie kann ich es beheben?

+0

Welches Betriebssystem verwenden Sie? – jedwards

+0

@ Jedwards, ich benutze Windows 10. – naghi

+1

@ Naghi. Brauchen Sie das nur um mit Windows zu arbeiten, und nicht mit Linux, Osx, etc? Wenn ja, sollten Sie dies in Ihrer Frage deutlich machen. – ekhumoro

Antwort

0

Ihr Code lässt keine Ausnahme ausgelöst werden. Sie sehen also den Fehler nicht: Es gibt keine '/ proc/cpuinfo' Datei unter Windows.

Ich habe Ihren Code so umschreiben:

def getserial(): 
    # Extract serial from cpuinfo file 
    with open('/proc/cpuinfo','r') as f: 
     for line in f: 
      if line[0:6] == 'Serial': 
       return line[10:26] 
     return "0000000000000000" 

Zuerst habe ich eine with Anweisung, um die Datei-Kontext-Manager zu verwenden: immer dann, wenn eine Ausnahme ausgelöst wird oder nicht, Ihre Datei geschlossen wird.

Und ich vereinfache die Schleife: Wenn es einen "Serial" -Eintrag gefunden hat, gibt es den Wert zurück.

EDIT

Wenn Sie Python mit einer Version> = 2.6 haben, können Sie einfach verwenden

import multiprocessing 

multiprocessing.cpu_count() 

http://docs.python.org/library/multiprocessing.html#multiprocessing.cpu_count

EDIT2

Die beste Lösung, die ich gefunden Holen Sie sich die "cpuinfo" ist mit der py-cpuinfo Bibliothek.

import cpuinfo 
info = cpuinfo.get_cpu_info() 
print(info) 

Aber ich denke, dass "Serial" -Eintrag nicht Standard ist. Ich kann es nicht auf klassischen Systemen sehen.

+0

, wie bekomme ich cpuserial in Windows? – naghi

+0

@ Naghi: Der Titel lautet "Wie bekomme ich cpu cpuserial in Python?" (Nicht Windows). Aber ich verstehe seine Frustration. Es gibt mehrere Fehler in seiner Frage. –

+0

Ich möchte es verwenden Eindeutige Kennung als Benutzer in Windows im Programm, was ist Ihr Angebot? – naghi

Verwandte Themen