в методе os.popen вместо русских букв выводятся знаки вопроса
если в пути есть русские буквы, то команда
os.popen('cd').read()
выводит просто C:\Users\????????..... что только не пробовал:
- для начала вводить os.system('chcp 65001'), но тогда тоже нарушалась кодировка или что то еще
- пробовал заменить команду cmd 'cd' на что то другое, но все равно выводилось как то не то
- пробовал выводить os.popen('chcp 65001 && cd').read() и с '&'
ну короче ничего не получилось, можете помочь решить эту проблему
Ответы (1 шт):
Автор решения: mrgervant
→ Ссылка
Точно узнать кодировку можно командой print(os.popen('chcp').read())
или в CMD через chcp
. Если символы будут сломаны, то числа скорее всего останутся:
При кодировке 866 работает следующий код:
os.popen('cd').read().encode('cp1251').decode('cp866')
Кодируем через encode('cp1251')
. После через decode('cp866')
декодируем строку (нужно выставить ту кодировку, что получена на 1 шаге).