Неизвестный тип вывода CalledProcessError
Пытаюсь отловить исключение, возникающее при вызове команды cd (Windows 10). переменная exc.output представляет из себя что-то вроде 'b\x8d\xa5\xa2\xa5\xe0\xad\xae \xa7\xa0\xa4\xa0\xad\xae \xa8\xac\xef \xaf\xa0\xaf\xaa\xa8.\r\n', как конвертировать данную строку в человеко читаемый текст?
import subprocess
def run_cd(args=''):
try:
output = subprocess.check_output(['cd', f'{args}'],
stderr=subprocess.STDOUT,
shell=True)
except subprocess.CalledProcessError as exc:
print('error catched')
print(exc.output)
else:
return output.decode("utf-8").strip()
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Попробуйте указывать кодировку консоли windows – cp866
print(exc.output.decode("cp866"))
Проверка кодировки:
data = b'\x8d\xa5\xa2\xa5\xe0\xad\xae \xa7\xa0\xa4\xa0\xad\xae \xa8\xac\xef \xaf\xa0\xaf\xaa\xa8.\r\n'
print(data.decode('cp866'))
# Неверно задано имя папки.