ошибка подпроцесса python 3 в байтах
Очень хорошо, у меня есть небольшая проблема с выводом потока, я получаю Unicode или я думаю, и не позволяет мне преобразовать его в UTF-8, это код:
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'))
Я прыгаю следующую ошибку:
**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'**
если я печатаю, оставляя печать, и если вы позволите мне:
print(o)
но он печатает следующее:
**b'Microsoft Windows XP [Versi\xa2n 5.1.2600]\r\n(C) Copyright 1985-2001 Microsoft Corp.\r\n\r\nC:\\>\xa8M\xa0s? '**
и если я изменю эти две строки:
string = bytes('dir',encoding="utf-8")
print (n[0].decode("latin"))
Я печатаю только часть вывода
что не получается?
Я решил так:
process.stdin.write("dir\n".encode())
o,e=process.communicate()
print (o.decode("utf-8"))
но я получаю ошибку:
Трассировка (последний вызов был последним): файл "C: \ Documents and Settings \ francisco \ Escritorio \ k.py", строка 6, в печатном виде (o.decode ("utf-8")) UnicodeDecodeError: 'utf-8' кодек не может декодировать байт 0xa3 в позиции 103: неверный стартовый байт
Я просто печатаю это так:
print (o.decode("latin"))
на латыни, я могу исправить эту ошибку и распечатать ее в utf-8?