Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 28, 2013 18:18:22

wmnpyafn
Зарегистрирован: 2013-06-09
Сообщения: 26
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблемы с кодировкой

Вывожу список файлов и папок методом listdir из модуля os. Вместо названий файлов написанных на русском получаю вот такие строки ‘\xd0\x9a\xd0\xbe\xd0\xb3\xd0\xb4\xd0\xb0 \xd1\x85\xd0\xbe\xd1\x80\xd0\xbe\xd0\xbd\xd1\x8f\xd1\x82 \xd0\xbc\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb4\xd1\x8b\xd1\x85’

Отредактировано wmnpyafn (Июнь 28, 2013 18:19:17)

Офлайн

#2 Июнь 28, 2013 19:11:57

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Проблемы с кодировкой

b'\xd0\x9a\xd0\xbe\xd0\xb3\xd0\xb4\xd0\xb0 \xd1\x85\xd0\xbe\xd1\x80\xd0\xbe\xd0\xbd\xd1\x8f\xd1\x82 \xd0\xbc\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb4\xd1\x8b\xd1\x85'.decode()
Out[1]: 'Когда хоронят молодых'

Офлайн

#3 Июнь 29, 2013 00:22:29

wmnpyafn
Зарегистрирован: 2013-06-09
Сообщения: 26
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблемы с кодировкой

Не буду же я каждую строку так делать, файлов с русскими названиями куча. Должен же быть другой вариант.

Офлайн

#4 Июнь 29, 2013 00:35:45

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Проблемы с кодировкой

wmnpyafn
Не буду же я каждую строку так делать
Можно разобраться с циклам или кодировками на выбор.

Офлайн

#5 Июнь 29, 2013 08:23:16

wmnpyafn
Зарегистрирован: 2013-06-09
Сообщения: 26
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблемы с кодировкой

Что вы подразумеваете под тем, что разобраться с циклами я понял, а про второй вариант можете по подробней?

Офлайн

#6 Июнь 29, 2013 08:41:19

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

Проблемы с кодировкой

http://docs.python.org/2/library/os.html#os.listdir

On Windows NT/2k/XP and Unix, if path is a Unicode object, the result will be a list of Unicode objects. Undecodable filenames will still be returned as string objects.
Передавайте Юникод, получите список Юникодовых путей.
os.listdir(u'path')

Офлайн

#7 Июль 2, 2013 15:08:26

wmnpyafn
Зарегистрирован: 2013-06-09
Сообщения: 26
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблемы с кодировкой

Ну и толку мне, что я получу в юникоде!? Я одинаково не умею читать ни строку вида ‘NTL - \xd0\x9a\xd0\xbe\xd0\xb3\xd0\xb4\xd0\xb0 \xd1\x85\xd0\xbe\xd1\x80\xd0\xbe\xd0\xbd\xd1\x8f\xd1\x82 \xd0\xbc\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb4\xd1\x8b\xd1\x85.mp3’
и не строку вида ‘NTL - \xd0\x9a\xd0\xbe\xd0\xb3\xd0\xb4\xd0\xb0 \xd1\x85\xd0\xbe\xd1\x80\xd0\xbe\xd0\xbd\xd1\x8f\xd1\x82 \xd0\xbc\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb4\xd1\x8b\xd1\x85.mp3’

Отредактировано wmnpyafn (Июль 2, 2013 15:08:50)

Офлайн

#8 Июль 2, 2013 16:21:58

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

Проблемы с кодировкой

wmnpyafn
на русском получаю вот такие строки ‘\xd0\x9a\xd0\xbe\xd0\xb3\xd0\xb4\xd0\xb0 \xd1\x85\xd0\xbe\xd1\x80\xd0\xbe\xd0\xbd\xd1\x8f\xd1\x82 \xd0\xbc\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb4\xd1\x8b\xd1\x85’
а в чем проблема? Гдн получаете? В консоли?

Офлайн

#9 Июль 2, 2013 19:57:38

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Проблемы с кодировкой

wmnpyafn
Ну и толку мне, что я получу в юникоде!?
Как говорил винипух - спокойствие и только спокойствие. Вы не объяснили что с названиями хотите сделать, вот и получили соответствующий ответ.

Есть много способов работать со строками. Сейчас стандарт де факто - получить данные из внешнего источника, перевести их в юникод и дальше работать только с юникодом. (Обычные строки не содержат достаточно данных чтобы их правильно отобразить - нужна доп информация о кодировке, а юникод строки лишены этого недостатка но зато занимают больше памяти).

wmnpyafn
Вывожу список файлов
‘NTL - \xd0\x9a\xd0\xbe\x…."
Вам правильно говорят напишите что конкретно (команды питона) что вы делаете чтобы это получить.


Карлсон



Отредактировано FishHook (Июль 2, 2013 20:05:25)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version