2013-08-28 29 views
1

enter image description here我試圖在csv文件寫我在我的名單[字符串,INT]有兩個價值,這是我的代碼如何處理與字符串,而在csv文件與Python編寫

prod = [['Enveloppes Esquisse adh\xe9sives', 1.85], 
     ['Enveloppes adh\xe9sives Esquisse', 1.1], 
     ['Enveloppes adh\xe9sives Esquisse', 1.1], 
     ['Enveloppes adh\xe9sives Esquisse', 1.85], 
     ['Pochettes kraft Esquisse', 0.95], 
     ['Pochettes kraft Esquisse', 1.75]] 

cw = csv.writer(open("nv.csv", 'w'), delimiter=';') 
    cw.writerow(['Produit', 'Prix']) 
    for row in prod: 
     cw.writerow([row[0],row[1]]) 

但我得到行中的「信封」,然後在其他行中刪除不是所有字符串都在一行中 任何人都可以幫助我嗎? 我的csv文件應包含兩行,一爲「Enveloppes Esquisse ADH \ xe9sives」和一個「1.85」

+1

你能顯示什麼是你想要的輸出? – alecxe

+0

在這種情況下,'cw.writerow([row [0],row [1]])'和'cw.writerow(row)'具有相同的效果。 –

+0

請發佈整個輸出結果,但您仍然不清楚這裏實際需要什麼。 –

回答

1

的文件說:

csv模塊不直接支持閱讀和編寫Unicode, 但它是8位清除保存ASCII字符的NUL 的一些問題。因此,只要避免使用NUL的編碼,如 UTF-16,就可以編寫處理 編碼和解碼的函數或類。建議使用UTF-8。

由於您的字符串或者是cp1250cp1252(我不能從樣品告訴)編碼字節字符串而不是Unicode字符串,這應該沒問題。你應該打開你的文件在二進制模式:

import io 
import csv 
prod = [['Enveloppes Esquisse adh\xe9sives', 1.85], 
     ['Enveloppes adh\xe9sives Esquisse', 1.1], 
     ['Enveloppes adh\xe9sives Esquisse', 1.1], 
     ['Enveloppes adh\xe9sives Esquisse', 1.85], 
     ['Pochettes kraft Esquisse', 0.95], 
     ['Pochettes kraft Esquisse', 1.75] 
     ] 

with io.open('nv.csv', 'wb') as f: 
    writer = csv.writer(f, delimiter=';') 
    writer.writerow(['Produit', 'Prix']) 
    for row in prod: 
     writer.writerow(row) 
相關問題