Найти - Пользователи
Полная версия: Перевод списка в строку
Начало » Python для новичков » Перевод списка в строку
1 2 3
Sergey912
Есть вот такой пример:

z = [u'\xe1\xe0\xed\xfc\xea\xee']
print z[0]
print z
Проблема в том, что при выводе z я получаю каракули вместо ‘\xe1\xe0\xed\xfc\xea\xee’, как получить строку = ‘\xe1\xe0\xed\xfc\xea\xee’?
timas
print repr(z)
Или не то?
igor.kaist
Куда ты пытаешься вывести эту строку??????
ВОТ прочитай, и подумай почему не получается :)
Sergey912
>> Куда ты пытаешься вывести эту строку??????
В консоль, в GUI PyQt4, создать папку с такими именем. Вроде все.
Сейчас почитаем :)

>> print repr(z)
>> Или не то?
Попробовал,

print unicode(repr(z) , ‘cp1251’)

Ничего не выдает, вобщем-то мне текст нужен, но я с этими кодировками как “99,99999% питон-программистов” - мало что понимаю
igor.kaist
1. Буковку u убери, так как это не юникодная строка, а cp1251
2. Крокозябы? а ты подумай, какую кодировку ждет то, куда ты это выводишь
3. Если тебе нужно преобразовать в utf-8 (вроде как для qt ), то так и сделай
z[0].decode('cp1251').encode('utf-8')
4.
Sergey912
Ничего не выдает, вобщем-то мне текст нужен, но я с этими кодировками как “99,99999% питон-программистов” - мало что понимаю
Откуда такие данные?

Добавлено:
В консоль выводи соответственно в кодировке cp866
Sergey912
>> В консоль выводи соответственно в кодировке cp866
Вывод в консоль:
z =
print unicode(repr(z) , ‘cp866’)
>>> “'”

Вот такой код:
z = [u'\xe1\xe0\xed\xfc\xea\xee']
z = repr(z[0])
print z
z = z.replace('u','')
print z
x = z[0].decode('cp1251').encode('utf-8')
print x
Выводит:
>>> u'\xe1\xe0\xed\xfc\xea\xee'
>>> ‘\xe1\xe0\xed\xfc\xea\xee’
>>> ‘

Если добавляю это в Gui (ячейка таблицы) - туда попадет ’
Папака создается с именем ‘
Хотя бы GUI должен был получить то что нужно вроде, но везде остается только ’

Если так:
z = [u'\xe1\xe0\xed\xfc\xea\xee']
z = repr(z[0])
print z
z = z.replace('u','')
z = z.replace('\'','')
print z
x = z[0].decode('cp1251').encode('utf-8')
print x
Получаю
>>> u'\xe1\xe0\xed\xfc\xea\xee'
>>> \xe1\xe0\xed\xfc\xea\xee
>>> \
igor.kaist
что тут скажешь…. пробовал какой нибудь учебник по питону читать?
слов нет…….. знаешь разницу между s='text' и s=u'text'?
Ты в строке видишь ковычки или СИМВОЛ u?! Так зачем же их реплейсить
И repr зачем?
z = ['\xe1\xe0\xed\xfc\xea\xee']
print z[0].decode('cp1251').encode('cp866')
Sergey912
z =
print z.decode('cp1251').encode('cp866')

Ў ­мЄ®

и что?
igor.kaist
Sergey912
и что?
Куда ты это выводишь? cp866 для консоли windows

Сейчас догадаюсь… Под консолью ты подрузумеваешь наверное idle, которая ЮНИКОДНАЯ консоль! Поэтому строки печатать ей нужно в юникоде
Sergey912
>> Под консолью ты подрузумеваешь наверное idle
А у нее уже не консоль?
Приложение GUI, зачем мне консоль нужна?

>>> Так зачем же их реплейсить
Есть другие варианты как ее убрать? Или я сам по твоему в исходниках такие списки заполняю?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB