Molto bene, ho un piccolo problema con l'uscita del filo, ho entrare in Unicode o credo e non mi permetta di convertirlo in utf-8, questo è il codice:pitone errore 3 sottoprocesso in byte
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'))
io salto il seguente errore:
**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'**
se stampo lasciando la stampa, e se me lo permetti:
print(o)
ma stampa la 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? '**
e se cambio queste due righe:
string = bytes('dir',encoding="utf-8")
print (n[0].decode("latin"))
stampare solo una parte della produzione
che non riesce?
ho risolto in questo modo:
process.stdin.write("dir\n".encode())
o,e=process.communicate()
print (o.decode("utf-8"))
ma ottengo l'errore:
Traceback (chiamata più recente scorso): file "C: \ Documents and Settings \ Francisco \ Escritorio \ k.py ", riga 6, in print (o.decode (" utf-8 ")) UnicodeDecodeError: il codec 'utf-8' non può decodificare il byte 0xa3 in posizione 103: byte di avvio non valido
mi basta stampare in questo modo:
print (o.decode("latin"))
in latino, posso correggere questo errore e stamparlo in utf-8?
Come viene definito 'n'? – unutbu