2014-01-21 4 views
0

Я читаю немецкие имена из csv и хочу записать их в файл csv с правильной кодировкой для ä, ö и ü. Чтение работает нормально, но когда я пишу в CSV, символы отображаются следующим образом: Löffler.CSV Module - напишите немецкий язык в CSV в python

reader1 = csv.reader(open('names.csv', 'rb'), delimiter=',') 

Что нужно добавить к моему автору, чтобы получить правильную кодировку?

outfile.write('K:' + n + ',' + a + ',' + '-' + '\n') 

Я попытался unicodecsv, но не может заставить его работать: сообщение

w = unicodecsv.writer(outfile, encoding='utf-8') 
w.write('K:' + n + ',' + a + ',' + '-' + '\n') 

Ошибка:

AttributeError: 'UnicodeWriter' object has no attribute 'write' 
+0

какая кодировка имеет ваш файл names.csv? – Ernst

ответ

1

В python2.X Ваш лучший выбор использует инструмент, как unicodecsv как csv модуль в этом питоне обрабатывает только acsii.

На Python3 + вы получите это от коробки, просто передайте правильное кодирование функции open.

+0

См. Мой отредактированный вопрос. – MJP

+0

Пожалуйста, изучите API модуля csv, этот модуль позволяет вам писать строки данных (то есть массивы), используя функцию 'writer.writerow', в то время как вы пытаетесь писать строки вручную. –

+0

Это сработало, однако, кодирование все еще не работает! Можете ли вы указать мне на простой пример того, как использовать unicodecsv с помощью csv writer? – MJP

0

Я думаю, вы должны изменить кодировку файла. Я думаю, UTF-8 должен работать. Вы используете Java? Here someone showed how it should work.

+0

Это для Java, не так ли? – MJP

+0

Извините, вы используете Python, или? – brogrammer

+0

Возможно, это поможет вам: [link] (http://stackoverflow.com/questions/934160/write-to-utf-8-file-in-python) – brogrammer

Смежные вопросы