Sehr gut, ich habe ein kleines Problem mit dem Ausgang des Themas, die ich in Unicode bekommen oder ich denke, und nicht lassen Sie mich es zu utf-8 konvertieren, dann ist dies der Code:Python 3 subprocess Fehler in Bytes
import subprocess,sys,time
string = b'dir'
process = subprocess.Popen('cmd.exe', shell=True,cwd="C:\\",stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=None)
process.stdin.write(string)
o,e=process.communicate()
process.wait()
process.stdin.close()
print (o.encode('utf-8'))
springen ich folgende Fehlermeldung:
**Traceback (most recent call last):
File "C:\Documents and Settings\francisco\Escritorio\k.py", line 12, in <module>
print (o.encode(utf-8))
AttributeError: 'bytes' object has no attribute 'encode'**
, wenn ich das drucken drucken verlassen und wenn Sie mich lassen:
print(o)
aber es druckt die fo llowing:
**b'Microsoft Windows XP [Versi\xa2n 5.1.2600]\r\n(C) Copyright 1985-2001 Microsoft Corp.\r\n\r\nC:\\>\xa8M\xa0s? '**
und wenn ich ändern diese beiden Zeilen:
string = bytes('dir',encoding="utf-8")
print (n[0].decode("latin"))
drucke ich nur einen Teil des Ausgangs
, die fehlschlägt?
Ich habe diese Art und Weise gelöst:
process.stdin.write("dir\n".encode())
o,e=process.communicate()
print (o.decode("utf-8"))
aber ich bekomme Fehler:
Traceback (jüngste Aufforderung zuletzt): Datei „C: \ Dokumente und Einstellungen \ francisco \ Escritorio \ k.py ", Zeile 6, in drucken (o.decode (" utf-8 ")) UnicodeDecodeError: 'utf-8' Codec kann Byte 0xa3 in Position 103 nicht dekodieren: ungültiges Startbyte
Ich drucke es wie folgt aus:
print (o.decode("latin"))
in Latein, ich diesen Fehler korrigieren und es in utf-8 drucken?
Wie wird 'n' definiert? – unutbu