Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 1, 2012 16:25:38

|R|U|D|E|N|
От:
Зарегистрирован: 2010-09-24
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

subprocess. Вся кирилица выводится байтами.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
def main():
    try:
        PIPE = subprocess.PIPE
        p = subprocess.Popen("hostnamee", \
            shell=True, stdin=PIPE, stdout=PIPE, stderr=subprocess.STDOUT)
        while True:
            s = p.stdout.readline()
            if not s: break
            print(s)
    except Exception as error:
        print("ERROR UPDATE POLICE:" + str(error))
if __name__ == '__main__':
    main()

Команда которая выполняется в моем примере на самом деле не существует но суть в том как выводится русский текст:

>>>
b'“hostnamee” \xad\xa5 \xef\xa2\xab\xef\xa5\xe2\xe1\xef \xa2\xad\xe3\xe2\xe0\xa5\xad\xad\xa5\xa9 \xa8\xab\xa8 \xa2\xad\xa5\xe8\xad\xa5\xa9\r\n'
b'\xaa\xae\xac\xa0\xad\xa4\xae\xa9, \xa8\xe1\xaf\xae\xab\xad\xef\xa5\xac\xae\xa9 \xaf\xe0\xae\xa3\xe0\xa0\xac\xac\xae\xa9 \xa8\xab\xa8 \xaf\xa0\xaa\xa5\xe2\xad\xeb\xac \xe4\xa0\xa9\xab\xae\xac.\r\n'
>>>

Как получить русский текст в консоле Winodows? Подскажите пожалуйста.



Офлайн

#2 Окт. 1, 2012 18:25:33

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

subprocess. Вся кирилица выводится байтами.

Для русской версии win (и приведенного текста):

s = s.decode('cp866')

Офлайн

#3 Окт. 2, 2012 14:59:47

|R|U|D|E|N|
От:
Зарегистрирован: 2010-09-24
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

subprocess. Вся кирилица выводится байтами.

Спасибо болшое! Все работает.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version