2012-07-07 58 views
6

我試圖寫一個清單到CSV,但是當我這樣做,我避開我的字段值包裝報價:CSV刪除字段值包報價

number1,number2 
"1234,2345" 
"1235.7890" 
"2345.5687" 

使用此代碼:

with open('C:\\temp\\test.csv', 'wb') as out_file: 
...  csv_writer = csv.writer(out_file, delimiter=',') 
...  csv_writer.writerow(('number1','number2')) 
...  for f in myList: 
...   csv_writer.writerow(f) 

經過進一步研究,我發現,您可以通過使用去除引號的文字:

quotechar='', quoting=csv.QUOTE_NONE**

當我將此我的代碼,我得到ŧ他的錯誤:

Traceback (most recent call last): File "", line 4, in Error: need to escape, but no escapechar set

with open('C:\\temp\\test.csv', 'wb') as out_file: 
...  csv_writer = csv.writer(out_file, delimiter=',',quotechar='', quoting=csv.QUOTE_NONE) 
     csv_writer.writerow(('number1','number2')) 
...  for f in myList: 
...   csv_writer.writerow(f) 

如何刪除這些報價?

編輯

myList中的樣子:

 [['1234,2345'], ['1235,7890'], ['2345,5687']] 
+0

你用什麼程序來讀取實際的CSV文件?引號出現在文本編輯器中嗎? – Blender 2012-07-07 05:18:02

+0

@Blender,我使用arcmap,值只在number1字段下。 – artwork21 2012-07-07 05:40:46

+0

因爲'myList'中有需要引用或轉義的內容,所以您正在獲取引號(或者發出一個關於沒有escapechar的提示)。通過'print myList [:3]'獲得'myList'中的前3行,並將輸出複製/粘貼到您的問題編輯中。 – 2012-07-07 05:42:33

回答

7

什麼在你的列表不是數字,文本,它甚至包含分隔符。這意味着將其導出爲csv,它必須被轉義。

如果希望將數據導出到csv,則需要將數據轉換爲數字。

編輯:另一方面,您的數據已經看起來像逗號分隔值 - 爲什麼不使用csv編寫器直接寫入文件?