2017-09-09 41 views
-4

J'ai écrit un programme en Python-3.6.2 sur Windows 10. Je veux obtenir le numéro de série du CPU.Comment obtenir le numéro de série du CPU sous Windows en utilisant Python?

Voici mon 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()) 

Quand je lance le programme, il imprime: ERROR000000000.

Comment le réparer?

+0

Quel système d'exploitation utilisez-vous? – jedwards

+0

@ jedwards, j'utilise Windows 10. – naghi

+1

@naghi. Avez-vous besoin de cela pour ** seulement ** travailler sur windows, et non sur linux, osx, etc? Si oui, vous devriez le préciser dans votre question. – ekhumoro

Répondre

0

Votre code ne permet aucune exception. Donc, vous ne voyez pas l'erreur: Il n'y a pas de fichier '/ proc/cpuinfo' sous Windows.

je réécrire votre code comme ça:

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" 

D'abord, j'ai une déclaration with d'utiliser le gestionnaire de contexte du fichier: chaque fois qu'une exception est levée ou non, votre dossier sera fermé.

Et je simplifie la boucle: si elle trouve une entrée "Serial", elle renvoie la valeur.

EDIT

Si vous avez python avec une version> = 2.6 vous pouvez simplement utiliser

import multiprocessing 

multiprocessing.cpu_count() 

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

EDIT2

La meilleure solution que je trouve à obtenir le "cpuinfo" est avec le py-cpuinfo bibliothèque.

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

Mais, je pense que l'entrée "série" n'est pas standard. Je ne peux pas le voir sur les systèmes classiques.

+0

, comment obtenir cpuserial dans Windows? – naghi

+0

@naghi: Le titre est "Comment obtenir cpu cpuserial en python?" (Pas Windows). Mais je comprends sa frustration. Il y a plusieurs failles dans sa question. –

+0

je veux l'utiliser Identifiant unique en tant qu'utilisateur dans Windows dans le programme, quelle est votre offre? – naghi