Найти - Пользователи
Полная версия: Как вывести в кириллице строки из файла .CSV
Начало » Python для новичков » Как вывести в кириллице строки из файла .CSV
1
bmco@mail.ru
Здравствуйте!

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

В консоли windows запускаю скрипт для чтения и вывода строк:
# -*- coding: utf8 -*-
text = open('books.csv').readline()
print text

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


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

как вариант сконвертировать строку с кодировки файла в юнико, а затем в кодировку терминала. Для этого надо еще Ваш файл.
Budulianin
bmco@mail.ru
Подскажите, пожалуйста, как сделать нормальный вывод кириллицей?

Либо изменить кодировку консоли на кодировку выводимого текста, либо кодировку текста на кодировку консоли.
Singularity
Budulianin
а если надо выводить внезапно с двух файлов с разными кодровками ?
Budulianin
Singularity
а если надо выводить внезапно с двух файлов с разными кодровками ?

Приводить текст к одной кодировке
Singularity
Budulianin
чет мне кажеться что это не всегда возможно.
Budulianin
Singularity
чет мне кажеться что это не всегда возможно.

Тебе кажется. В программе, работа идёт с юникодом, так что без разницы, в какой кодировке потом писать
bmco@mail.ru
Singularity
как вариант сконвертировать строку с кодировки файла в юнико, а затем в кодировку терминала. Для этого надо еще Ваш файл.

Вот сам файл CSV
Singularity
print text.decode('cp1251').encode('cp866')
Вроде так
bmco@mail.ru
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)
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