2014-01-21 91 views
0

我正在從csv讀取德語名稱,並且希望將它們寫入csv文件,並使用正確的ä,ö和ü編碼。閱讀工作正常,但是當我寫入csv時,字符顯示如下:Löffler。CSV模塊 - 在python中將德語寫入CSV

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這個python模塊只處理acsii

在Python3 +上,你會得到這個盒子中的任何一個,只需將正確的編碼傳遞給open函數即可。

+0

請看我編輯的問題。 – MJP

+0

請看一下csv模塊的API,這個模塊允許你在用手寫代碼的時候使用'writer.writerow'函數編寫數據行(即數組)。 –

+0

這工作,但是,編碼仍然無法正常工作!你能指點我一個簡單的例子,說明如何使用csv編寫器使用unicodecsv嗎? – 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