2017-09-01 69 views
1

我有一行數據,我試圖寫一個.tab文件看起來像這樣:csv.writer用單引號字符

row = ['07/19/2017/10/33/30', 'gg_ca_18" dishwashers_204454792491_1t1', 
     Decimal('369.00'), 1L, '66745355'] 

我要離開沒能逃脫這樣的單引號它看起來像這樣:

07/19/2017/10/33/30 gg_ca_18" dishwashers_204454792491_1t1 369.00 1 66745355 

我用這個代碼寫入文件:

with open(file_name, 'wb') as outfile: 
     a = csv.writer(outfile, delimiter='\t') # ,escapechar=None, quoting=csv.QUOTE_NONE 
     a.writerows(row) 

我一直在使用嘗試和這個的幾個變化。我總是得到錯誤Error: need to escape, but no escapechar set。避免中間單引號的最好方法是什麼?是否可以使用csv模塊?

+2

轉義它有什麼問題?試着不要看起來不好。 – wim

+0

開頭括號沒有一個匹配的結尾是有意的還是它是一個錯字? – DyZ

+0

我不想逃避單引號,因爲我將數據導入到的系統不能識別轉義字符。 – Hound

回答

2

你可以使用不同的quotechar

​​
+0

對於Python 2,你應該使用'open(file_name,'wb')'以二進制模式打開文件 – martineau

+0

我不想使用任何轉義字符 – Hound

+0

@Hound你也可以使用'quotechar = None',但是我給你的版本會爲你顯示的示例行生成你想要的。 –

-2

如果您想要轉義字符,請使用\

在你例子,這將是\"

1

如果你不想逃避什麼,它不是一個CSV文件了。將每一行項目轉換爲一個字符串,將這些字符串合併爲一個字符串,並將其寫入文件中:

line = ' '.join(map(str,row)) 
#'07/19/2017/10/33/30 gg_ca_18" dishwashers_204454792491_1t1 369.00 1 66745355' 
outfile.write(line + "\n")