drno-reg
@drno-reg
см не кратко

Как правильно задать кодовую страницу в os.system(cmd)?

Здравствуйте.

хочу выполнить в cmd некоторый команды из Python

import os
cmd = 'chcp'
os.system(cmd)


в результате

������ ������� ��࠭��: 866

в должно быть
Текущая кодовая страница: 866

каким образом скорректировать вывод кодовой страницы, чтобы отображалась кириллица?
  • Вопрос задан
  • 651 просмотр
Пригласить эксперта
Ответы на вопрос 2
@res2001
Developer, ex-admin
Не уверен, что вообще это можно сделать.
На сколько я знаю, python оперирует UNICODE символами, соответственным образом настраивает консоль.
cmd с юникодом уживается очень плохо.
Для UTF-8 в cmd кодовая страница имеет номер 65001. Попробуйте ее указать в вызове chcp 65001 и далее через амперсанд указывайте другие нужные команды:
cmd = 'chcp 65001 & echo Русский текст& dir /b/s'
Ответ написан
Комментировать
@fdrwitch
в питоне 3.6 и 2.7 ваш пример дает одну и ту же ошибку:
sh: 1: chcp: not found
32512
если дать типа простого cmd = 'mkdir aaaaa', то всё проходит ....
это, как написано в документации по либреф (16.1) " Execute the command (a string) in a subshell. "
Наверное у вас что-то с виндой не так!!!! Проверьте хотя бы на ord('ы') -- должно быть 1099 !!??
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы