Bardzo dobrze, mam mały problem z wyjściem wątku, dostaję w Unicode lub myślę i nie pozwól mi przekonwertować go na utf-8, jest to kod:python 3 błąd podprocesowy w bajtach
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'))
skaczę następujący błąd:
**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'**
gdybym wydrukować pozostawiając odcisk i jeśli mi pozwolisz:
print(o)
ale drukuje 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? '**
i jeśli zmienię te dwie linie:
string = bytes('dir',encoding="utf-8")
print (n[0].decode("latin"))
wydrukować tylko część produkcji
że się nie powiedzie?
I został rozwiązany w ten sposób:
process.stdin.write("dir\n".encode())
o,e=process.communicate()
print (o.decode("utf-8"))
ale dostaję błąd:
Traceback (najnowsza rozmowę ostatni): pliku „C: \ Documents and Settings \ Francisco \ Escritorio \ k.py ", wiersz 6, w print (o.decode (" utf-8 ")) UnicodeDecodeError: kodek" utf-8 "nie może dekodować bajtu 0xa3 w pozycji 103: niepoprawny bajt początkowy
po prostu wydrukować go tak:
print (o.decode("latin"))
w latin, mogę naprawić ten błąd i wydrukować go w UTF-8?
Jak zdefiniowano 'n'? – unutbu