Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 11, 2015 12:40:00

AlexModestov
Зарегистрирован: 2015-12-11
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

python работа с кириллицей

Коллеги, добрый день!
Python не понимает массив из слов на кириллице…
При выводе в ipython notebook он заменяет символы кодами.
Есть ли возможность корректной работы с русскими текстами?
Спасибо!

Офлайн

#2 Дек. 11, 2015 12:52:45

Zeclone
От: .uz
Зарегистрирован: 2015-02-27
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

python работа с кириллицей

AlexModestov
Коллеги, добрый день!Python не понимает массив из слов на кириллице…При выводе в ipython notebook он заменяет символы кодами.Есть ли возможность корректной работы с русскими текстами?Спасибо!

да есть.
М.Доусон ___ Программирование на Питон



:D Zeclone не русский поэтому просит прошения за ошыбки :D

Отредактировано Zeclone (Дек. 11, 2015 12:53:38)

Офлайн

#3 Дек. 11, 2015 14:25:00

J.R.
Зарегистрирован: 2015-07-18
Сообщения: 147
Репутация: +  16  -
Профиль  

python работа с кириллицей

AlexModestov
Есть ли возможность корректной работы с русскими текстами?
Python3
>>> x = 'Кириллический текст'
>>> x
'Кириллический текст'
>>> x = ['Слово', 'Серебро', 'Молчание', 'Золото']
>>> x
['Слово', 'Серебро', 'Молчание', 'Золото']

Офлайн

#4 Дек. 11, 2015 14:28:50

AlexModestov
Зарегистрирован: 2015-12-11
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

python работа с кириллицей

J.R.
Спасибо!
Только забыл пояснить… у меня python 2.7
Датафрейм понимает русские названия, делаю преобразование np.array()
Получаю:
'\xd0\xa1\xd0\xbb\xd1\x83\xd1\x88\xd0\xb0\xd0\xb9 \xd0\xbc\xd0\xb5\xd0\xbd\xd1\x8f \xd0\xb2\xd0\xbd\xd0\xb8\xd0\xbc\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\xd0\xbd\xd0\xbe'

Офлайн

#5 Дек. 11, 2015 14:47:06

J.R.
Зарегистрирован: 2015-07-18
Сообщения: 147
Репутация: +  16  -
Профиль  

python работа с кириллицей

AlexModestov
Я только ответил на ваш вопрос.

Что касается второго питона, у него в дефолте кодировка ASCII, поэтому кириллический текст вы будете в интерпретаторе видеть либо в виде байт-кода, либо в виде юникод-строк.

>>> x = 'Слушай меня внимательно'
>>> y = x.decode('utf-8')
>>> x
'\xd0\xa1\xd0\xbb\xd1\x83\xd1\x88\xd0\xb0\xd0\xb9 \xd0\xbc\xd0\xb5\xd0\xbd\xd1\x8f \xd0\xb2\xd0\xbd\xd0\xb8\xd0\xbc\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\xd0\xbd\xd0\xbe'
>>> y
u'\u0421\u043b\u0443\u0448\u0430\u0439 \u043c\u0435\u043d\u044f \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e'
>>> 
Увы..! Иногда отладочные print -ы сводят неудобство к минимуму.
>>> print y
Слушай меня внимательно
>>> print x
Слушай меня внимательно
>>> 

Офлайн

#6 Дек. 11, 2015 15:01:13

AlexModestov
Зарегистрирован: 2015-12-11
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

python работа с кириллицей

J.R.
AlexModestovЯ только ответил на ваш вопрос.Что касается второго питона, у него в дефолте кодировка ASCII, поэтому кириллический текст вы будете в интерпретаторе видеть либо в виде байт-кода, либо в виде юникод-строк.
На отладке-то я понимаю, print помогает.
Просто при записи в файл ерунда…
Указываю в коде:
# -*- coding: utf-8 -*-

Офлайн

#7 Дек. 11, 2015 15:03:42

J.R.
Зарегистрирован: 2015-07-18
Сообщения: 147
Репутация: +  16  -
Профиль  

python работа с кириллицей

AlexModestov
Тогда показывайте свой код. Что пишете в файл, и что получаете.

Офлайн

#8 Дек. 11, 2015 15:10:11

AlexModestov
Зарегистрирован: 2015-12-11
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

python работа с кириллицей

J.R.
AlexModestovТогда показывайте свой код. Что пишете в файл, и что получаете.
Вот кусок кода:

f = open('results.csv', ‘a’)
f.write('ID' + ‘;’)
f.write('rec')
f.write('\n')
for el in list.items():
f.write(el + ‘;’)
f.write(el)
f.write('\n')
f.close()

list - словарь, который содержит ID и рекомендацию. На выходе я хочу, получить файл с ID и рекомендацией в csv-формате.

Рекомендация как и выше по переписке: “Слушай меня внимательно” (всего лишь название песни)
Получаю в файле следующее:

ID rec
3534345345 Слушай меня внимательно

Отредактировано AlexModestov (Дек. 11, 2015 15:10:27)

Офлайн

#9 Дек. 11, 2015 15:23:50

J.R.
Зарегистрирован: 2015-07-18
Сообщения: 147
Репутация: +  16  -
Профиль  

python работа с кириллицей

AlexModestov
Рекомендация как и выше по переписке: “Слушай меня внимательно” (всего лишь название песни)
Как она (строка с названием песни) попадает в ваш словарь?

AlexModestov
Указываю в коде:
# -*- coding: utf-8 -*-
А файл с кодом в какой кодировке?

Отредактировано J.R. (Дек. 11, 2015 15:29:38)

Офлайн

#10 Дек. 11, 2015 15:55:16

AlexModestov
Зарегистрирован: 2015-12-11
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

python работа с кириллицей

J.R.
Как она (строка с названием песни) попадает в ваш словарь?
Есть таблица в csv, все это загружаю в датафрейм, потом делаю работу с датафреймом, через groupby и потом столбец с песнями преобразую в массив np.array() и верхнюю выборку по песням сохраняю в файл.

J.R.
А файл с кодом в какой кодировке?
признаюсь честно… не знаю… не так много работаю с python.
работаю в ipython notebook.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version