Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.19.56.45] |
|
Сообщ.
#1
,
|
|
|
а он не умеет выводить в нужной кодировке, потому что все даныне представляет только в виде ASCII и non-ASCII (вида 0x/00x/xx/ и т.д.) сделать же нормальный вывод кирилицы не понятно как.
Вот небольшой код иллюстрирующий проблему: # -*- coding: cp1251 -*- import random def somefunc(): somelist=[1,2,3,4,5,6,7,8,9] get_some_vars=random.sample(somelist, 3) var_one, var_two, var_three=get_some_vars return 'Значение один', var_one, 'Значение два', var_two, 'Значение три', var_three somedict={'name_one': 1, 'name_two': 2, 'name_three': 3} for step_one, step_two in somedict.iteritems(): print step_one, somefunc() Выводит он следующее: name_one ('\xc7\xed\xe0\xf7\xe5\xed\xe8\xe5 \xee\xe4\xe8\xed', 1, '\xc7\xed\xe0\xf7\xe5\xed\xe8\xe5 \xe4\xe2\xe0', 3, '\xc7\xed\xe0\xf7\xe5\xed\xe8\xe5 \xf2\xf0\xe8', 2) name_two ('\xc7\xed\xe0\xf7\xe5\xed\xe8\xe5 \xee\xe4\xe8\xed', 3, '\xc7\xed\xe0\xf7\xe5\xed\xe8\xe5 \xe4\xe2\xe0', 6, '\xc7\xed\xe0\xf7\xe5\xed\xe8\xe5 \xf2\xf0\xe8', 5) name_three ('\xc7\xed\xe0\xf7\xe5\xed\xe8\xe5 \xee\xe4\xe8\xed', 1, '\xc7\xed\xe0\xf7\xe5\xed\xe8\xe5 \xe4\xe2\xe0', 8, '\xc7\xed\xe0\xf7\xe5\xed\xe8\xe5 \xf2\xf0\xe8', 9) А хотелось бы что бы выводил все же кирилицу правильно в нужной кодировке, а не как набор non-ASCII символов. Возможно ли такое? |
Сообщ.
#2
,
|
|
|
Если это в целях отладки, то попробуй с помощью pprint выводить объекты (правда, не совсем "чистый" способ):
import pprint real_safe_repr = pprint._safe_repr def safe_repr(object, *args, **kwargs): if isinstance(object, basestring): return ("'%s'" % object.decode('windows-1251').encode('windows-1251')), True, False return real_safe_repr(object, *args, **kwargs) pprint._safe_repr = safe_repr ... pprint.pprint(somefunc()) |
Сообщ.
#3
,
|
|
|
Я в программировании совсем новичок, поэтому не могли бы вы расписать подробнее, что бы мне уяснить смысл.
|
Сообщ.
#4
,
|
|
|
Сначала скажи, чего именно хочешь добиться? Выводить объекты в понятном, читаемом виде, или просто выводить информацию из этих объектов?
|
Сообщ.
#5
,
|
|
|
Второе, но именно из массива и кирилицей (ну может быть есть какой то другой способ - но я его не знаю), потому что предполагается, что у меня будет хранится некоторое количество фраз в кирилице над которыми надо проводить операции обрезания, замены слов, то есть полностью контролировать параметры вывода. Как это сделать, я пока не могу додуматся.
Вообще же, хочется что бы кирилица нормально читалась при любом способе вывода (включая вышеуказанный пример в начале темы), но вот как это сделать? |
Сообщ.
#6
,
|
|
|
Может быть стоит мигрировать целиком на utf-8?
|
Сообщ.
#7
,
|
|
|
Я бы с большой радостью, только бы можно было нормально выводить кирилицу, но как?
Если просто прописать # -*- coding: utf-8 -*- то я боюсь что это не решит проблему. |
Сообщ.
#8
,
|
|
|
Свои микропрограммы на питоне писал в VIM.
В начало в ставлял # vim: set fileencoding=utf-8 ts=4 sw=4 expandtab: Все работало. |