Кодировка кириллицы в консоле при использовании os.popen
Вместо кириллицы выводит какие-то символы, что-то вроде этого. Как исправить?
import os
print(os.popen('dir').read())
# ‹®Є «мл© ¤аҐб Є
Ответы (1 шт):
Автор решения: Viewed
→ Ссылка
Проблема кодировки. Полагаю, что поможет один из следующих вариантов. Возьмите один.
import os
# Вариант 1
# после этого остальные варианты некорректны, перезапуск консоли понадобится
print(os.popen('chcp 1251').read())
print(os.popen('dir').read())
# Вариант 2
print(os.popen('dir').read().encode('cp1251').decode('cp866'))
# Вариант 3
import _locale
_locale._getdefaultlocale = (lambda *args: ['ru', 'cp866'])
print(os.popen('dir').read())