2014-12-10 42 views
0

我已經通過解決此問題的幾個類似的職位的工作,但無濟於事 - I輸出列表到csv文件的列表,但特殊字符不正確顯示爲Excel不讀它作爲UTF8啓用Excel打開CSV Python的輸出UTF8

我是初學者所以我在努力實現一些人已經使用,比如寫入UTF16和使用物料清單的解決方法 - 我最新的嘗試是試圖將BOM添加到我的輸出CSV但它不工作。

with open(outputname, "wb") as f: 
    writer = csv.writer(f) 
    writer.writerows(my_list) 
    f.write(u'\ufeff'.encode('utf8')) # BOM 

我試過一些更復雜的方式,如使用UnicodeWriter,但沒有運氣。任何想法,將不勝感激!

回答

0

我終於明白了這一點,以防萬一它對其他人有用 - 我通過解碼我的csv內容(在導出到csv之前存儲在嵌套列表中)來解決它,然後將內容重新編碼爲' CP1252' 我相信這是通過Excel中使用的編碼。有沒有在Mac上測試這一尚未但它肯定適用於Windows。

for i in range(len(nestedlist)): 
    for j in range(7): 
     x = nestedlist[i][j] 
     y = unicode(x, 'utf-8') 
     nestedlist[i][j] = y.encode('cp1252') 
+0

事後看來,使用openpyxl來處理Excel元素在這裏會容易得多。 – samg86 2015-01-06 16:20:25