Как выполнить команды Windows (ipconfig, netstat) с определенной локалью / кодовой страницей, используя python - PullRequest
2 голосов
/ 26 августа 2011

Я хочу проанализировать вывод команд Windows, таких как ipconfig, netstat, tasklist и т. Д., Используя python.

Но определенная часть (фиксированная) вывода этих команд возвращается на основев текущей локали / кодовой странице.

Например, на ipconfig выводе

the string           IP Address..........:123.23.242.12
will be in chinese   IP 地址   ..........:123.23.242.12

или на другом языке, в зависимости от кодовой страницы.

Существует ли способ выполнения таких команд, какos.popen("ipconfig") с определенной настройкой локали / кодовой страницы.

  1. Я пытался использовать модуль локали: locale.setlocale(locale.LC_ALL,"american_united states") locale.getlocale() возвращает "English_United States.1252", но os.system("chcp") по-прежнему возвращает старую кодовую страницу: 936и os.popen("ifconfig") возвращает строки на китайском языке.

  2. os.system("chcp 65001") сейчас os.popen("ifconfig") возвращает английские строки, но очищает весь предыдущий вывод с консоли (может быть, он открывает новую консоль), которыйнеприемлемо.

Есть ли какой-либо способ выполнения таких команд, как os.popen("ipconfig"), с определенной настройкой локали / кодовой страницы?Любая помощь приветствуется.

...