2012-11-01 112 views
0

我有以下字符串格式化數據爲.csv使用python

string = "First Name | Last Name | Age" 

當我打印它看起來像這樣:

First Name | Last Name | Age 

當我打印到CSV文件

writer.writerow(datac[0]) 

看起來像這樣:

F, i, r, s, t and so on... 

如何獲得單行打印?像這樣

Row1 

First Name | Last Name | Age 
+0

你試過'writer.writerow([datac [0]])嗎? – Blender

+0

「名字」,「姓氏」和「年齡」應該是分開的列嗎? –

回答

2

writer.writerow()期待着一個序列。由於字符串是字符序列,因此它正在被解釋。

如果你的行只包含一個元素,你可能表明,像這樣:writer.writerow([datac[0]])writer.writerow(datac[0:1])

+0

這是正確的,但可能會丟失一些東西。他的問題的最後一行表明,他可能期望寫出三個(管道分隔?)列,而不是一個。 (順便提一句,一列的csv文件不需要分隔符。)如果'datac'包含三個項目,他真正需要的將是'writer.writerow(datac)'。 –

+0

如果需要使用管道分隔符,請將分隔符傳遞給csv writer構造函數:'writer = csv.writer(a_file,delimiter ='|')' –

1

writer.writerow()預計序列,當你給它一個字符串,它會將其作爲charecters序列。 嘗試這樣做。

writer = csv.writer(csvfile, delimiter=' ') 
string = "First Name | Last Name | Age" 
writer.writerow(string.split('|')) 
+1

除非將csv分隔符設置爲''|'',否則會輸出使用逗號作爲分隔符,這似乎與所期望的不同。 – recursive