2017-07-02 4 views
0

Hier ist mein Stück Python-Code Scratch.Python-Kodierungsproblem, Netzwerkadapter nicht erkannt

import os 
print 'netsh interface ip set address name="' + adapter + '" static '+ staticaddr +' 255.255.255.0 192.168.1.1' 

Bis zu diesem Punkt ist alles in Ordnung der Adapter ist in meinen Treibern enthalten.

Jetzt, als ich laufen diese (als Administrator)

os.system('netsh interface ipv4 set address name="' + adapter + '" static '+ staticaddr +' 255.255.255.0 192.168.1.1') 

Sie feuert diesen Fehler:

La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte. 

, die den Befehl Syntax bedeutet nicht korrekt ist.

versuchte ich os.system('netsh interface ipv4 set address name="' + adapter.encode('ascii','ignore') + '" static '+ staticaddr +' 255.255.255.0 192.168.1.1')

Nun ist diese Art von Ausnahme auftritt:

'ascii' codec can't decode byte 0x82 in position 11: ordinal not in range(128) 

Wo ist das Problem genau?

Mein Netzwerk-Adapter-Name ist: Connexion réseau sans fil

Antwort

1

adapter.encode('ascii','ignore') wirft UnicodeDecodeError weil adapter ist ein nicht-ascii str. Um es zu codieren (d. H. Von Unicode in Str zu konvertieren), versuchte Python zuerst, es zu decodieren (d. H. Von str in Unicode zu konvertieren) und fehlgeschlagen (adapter ist nicht-ASCII).

Umschalten auf Unicode vollständig:

print (u'netsh interface ip set address name="' + adapter.decode('latin1') + u'" static '+ staticaddr.decode('ascii') + u' 255.255.255.0 192.168.1.1').encode('latin1') 
+0

Tis entfesselt einen Fehler anderer Art ' 'charmap' Codec Charakter nicht kodieren, können u '\ x82' in Position 21: Zeichen zuordnet ' – Abra001

+0

Ich bin Ich benutze python2 sowieso, ich weiß es erklärt, dafür werde ich mit python3 versuchen – Abra001