Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 28, 2009 19:12:39

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Перевод списка в строку

Сейчас начну матом ругаться :)
ты print в gui делаешь?????
Трудно вместо cp866, подставить нужную кодировку??????
Под консолько обычно подразумевают виндовую cmd, которая работает с cp866, idle это юникодная консоль. В GUI обычно используют utf-8 или юникод



Офлайн

#2 Янв. 28, 2009 19:32:58

Sergey912
От:
Зарегистрирован: 2009-01-19
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Перевод списка в строку

>> ты print в gui делаешь?????
Пока только через cp866 получилось в консоль вывести cmd и в idle консоль, но в случае без u. Подставить кодировку не трудно, но лучше вместо мата покажи пример с u в списке исходном, а не без него, как это перевести в unicode и в cp1251 :)



Отредактировано (Янв. 28, 2009 19:55:29)

Офлайн

#3 Янв. 29, 2009 02:41:43

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Перевод списка в строку

Офлайн

#4 Янв. 29, 2009 11:14:18

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Перевод списка в строку

Sergey912
но лучше вместо мата покажи пример с u в списке исходном
Там не должно стоять u, так как это не юникодная строка
Советую почитать ЭТО, чтоб хоть чуть чуть ознакомится с основами работы со текстом.
Откуда эта строка у тебя взялась? Может опишешь более полную картину.



Офлайн

#5 Янв. 29, 2009 17:35:35

Sergey912
От:
Зарегистрирован: 2009-01-19
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Перевод списка в строку

>> чтоб хоть чуть чуть ознакомится с основами работы со текстом.
Да что ты говоришь? Так u все таки удалить не вышло, значит ее там быть не должно? Блеснул бы своими знаниями и удалил ее или есть проблемы?

>> Откуда эта строка у тебя взялась? Может опишешь более полную картину.
http://code.google.com/p/quodlibet/wiki/Mutagen
проблема только со старыми mp3 куда он все равно ставит u

лучше

m = mutagen.id3.Open ('x.mp3')
print m
{u'WXXX:': WXXX(encoding=0, desc=u'', url=u'russianmp3.qps.ru'), 'TPE1': TPE1(encoding=0, text=[u' \xc5\xe1\xe0\xed\xfc\xea\xee']), 'TDRC': TDRC(encoding=0, text=[u'2003']), 'TALB': TALB(encoding=0, text=[u'\xd2\xe0\xed\xf6\xfb \xf1 \xec\xe0\xf2\xee\xec']), 'TRCK': TRCK(encoding=0, text=[u'6']), 'TPUB': TPUB(encoding=0, text=[u'by Romikay']), u"COMM::'\\x00\\x00\\x00'": COMM(encoding=1, lang='\x00\x00\x00', desc=u'', text=[u'www.rus.6x.to BEST RUSSIAN MUSIC']), 'TIT2': TIT2(encoding=3, text=[u'An example']), 'TCON': TCON(encoding=0, text=[u'Other']), 'TPE2': TPE2(encoding=1, text=[u'\xc5\xe1\xe0\xed\xfc\xea\xee'])}



Отредактировано (Янв. 29, 2009 18:00:09)

Офлайн

#6 Янв. 29, 2009 19:02:31

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Перевод списка в строку

Sergey912
Блеснул бы своими знаниями и удалил ее или есть проблемы?
'u' это литерал, который говорил питону, что внутри юникодный текст, а не символ, содержащийся в тексте. Да, ее там быть не должно, так как внутри. Проблема в самой библиотеке, которая возвращает unicode когда не нужно, правь ее.
P.S. И постарайся не грубить, а то помогать желание быстро отпадает.



Отредактировано (Янв. 29, 2009 19:05:12)

Офлайн

#7 Янв. 29, 2009 19:09:12

Sergey912
От:
Зарегистрирован: 2009-01-19
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Перевод списка в строку

>> P.S. И постарайся не грубить, а то помогать желание быстро отпадает.
Когда мне тыкают носом в мануал, где это не нужно именно такое желание и появляется. Я в курсе прекрасно для чего нужно u и в середине темы говорил тебе, что не сам ее туда подставляю от нечего делать
Лучше им напишу, чтобы исправили :)



Отредактировано (Янв. 29, 2009 19:10:23)

Офлайн

#8 Янв. 29, 2009 19:45:19

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Перевод списка в строку

Sergey912
У вас изначально не верная строка в списке. Если задача сводится просто к:

Sergey912
Проблема в том, что при выводе z я получаю каракули вместо ‘\xe1\xe0\xed\xfc\xea\xee’, как получить строку = ‘\xe1\xe0\xed\xfc\xea\xee’?
то
>>> z = [u'\xe1\xe0\xed\xfc\xea\xee']
>>> print z[0].encode("unicode-escape")
\xe1\xe0\xed\xfc\xea\xee
А вообще, ищите ошибку у себя в коде.

А вообще с мутагеном надо очень аккуратно работать.



Отредактировано (Янв. 29, 2009 19:49:13)

Офлайн

#9 Янв. 29, 2009 19:58:18

Sergey912
От:
Зарегистрирован: 2009-01-19
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Перевод списка в строку

Daevaorn
Спасибо, а из литералов можно получить текст?

>> А вообще с мутагеном надо очень аккуратно работать.
В каком смысле? Я читал что для старых тегов хороший вариант конвертировать их в новые, но не нашел такого в мутагене, попробую через другую библиотеку конвертировать, если такие есть



Отредактировано (Янв. 29, 2009 20:02:33)

Офлайн

#10 Янв. 30, 2009 16:24:16

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Перевод списка в строку

Sergey912
Спасибо, а из литералов можно получить текст?
Надо поэкспериментировать.

Sergey912
В каком смысле?
Это больше связано с безпределом тегирования mp3 файлов в наших широтах. Самая вакханалия это с кодировками (доходит до того, что в одном теге символы в разных кодировках встречаются). Вот такую интересную строчку вы вполне могли получить именно из-за этого.

Я в своё время делал умный экстрактор тегов на базе мутагена и chardet. И то он работал с какой-то вероятностью успешности.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version