Уведомления

Группа в Telegram: @pythonsu

#1 Март 11, 2014 15:19:56

bmco@mail.ru
Зарегистрирован: 2014-03-11
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вывести в кириллице строки из файла .CSV

Здравствуйте!

Есть файл в формате CSV.

В консоли windows запускаю скрипт для чтения и вывода строк:

# -*- coding: utf8 -*-
text = open('books.csv').readline()
print text

В итоге на экран выводятся кракозябры (см.скриншот).


Подскажите, пожалуйста, как сделать нормальный вывод кириллицей?

Прикреплённый файлы:
attachment screen.png (4,5 KБ)

Офлайн

#2 Март 11, 2014 15:37:14

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

Как вывести в кириллице строки из файла .CSV


как вариант сконвертировать строку с кодировки файла в юнико, а затем в кодировку терминала. Для этого надо еще Ваш файл.

Отредактировано Singularity (Март 11, 2014 15:38:38)

Офлайн

#3 Март 11, 2014 15:38:54

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Как вывести в кириллице строки из файла .CSV

bmco@mail.ru
Подскажите, пожалуйста, как сделать нормальный вывод кириллицей?

Либо изменить кодировку консоли на кодировку выводимого текста, либо кодировку текста на кодировку консоли.



Офлайн

#4 Март 11, 2014 15:40:08

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

Как вывести в кириллице строки из файла .CSV

Budulianin
а если надо выводить внезапно с двух файлов с разными кодровками ?

Офлайн

#5 Март 11, 2014 15:41:53

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Как вывести в кириллице строки из файла .CSV

Singularity
а если надо выводить внезапно с двух файлов с разными кодровками ?

Приводить текст к одной кодировке



Офлайн

#6 Март 11, 2014 15:44:27

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

Как вывести в кириллице строки из файла .CSV

Budulianin
чет мне кажеться что это не всегда возможно.

Офлайн

#7 Март 11, 2014 15:47:35

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Как вывести в кириллице строки из файла .CSV

Singularity
чет мне кажеться что это не всегда возможно.

Тебе кажется. В программе, работа идёт с юникодом, так что без разницы, в какой кодировке потом писать



Офлайн

#8 Март 11, 2014 15:48:19

bmco@mail.ru
Зарегистрирован: 2014-03-11
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вывести в кириллице строки из файла .CSV

Singularity
как вариант сконвертировать строку с кодировки файла в юнико, а затем в кодировку терминала. Для этого надо еще Ваш файл.

Вот сам файл CSV

Прикреплённый файлы:
attachment books.csv (3,2 KБ)

Офлайн

#9 Март 11, 2014 15:59:34

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

Как вывести в кириллице строки из файла .CSV

print text.decode('cp1251').encode('cp866')
Вроде так

Офлайн

#10 Март 11, 2014 16:17:51

bmco@mail.ru
Зарегистрирован: 2014-03-11
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вывести в кириллице строки из файла .CSV

Singularity

Singularity, большое спасибо за помощь! Ваш принт успешно работает!

Или можно таким образом:
# -*- coding: utf-8 -*-
import sys
import locale
text = open('books.csv').readline()
# print text.decode('cp1251').encode('cp866')
print text.decode(locale.getpreferredencoding()).encode(sys.stdout.encoding)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version