2017-03-01 64 views
-1

我想寫到CSV文件中,我有我想要寫一個硬編碼的報頭:寫作到CSV符串字符

head = ["Q151", "item time", "deliberativness", "deliberativness time", 
     "Q153", "item time", "deliberativness", "deliberativness time"] 

但是當我運行的CSV作家是將每char到不同的列中,並將列表中的每個項目都分配到不同的行中。所以我得到

Q 1 5 1 
i t e m t i m e 

,而不是Q151 item time ...

with open('some.csv', 'wb') as f: 
    writer = csv.writer(f) 
    for r in head: 
     writer.writerow(r) 

我用一個簡單的writer像Python文檔。我究竟做錯了什麼?

如上所述的例外結果Q151項目時間...

+0

您應該將您的行傳遞給方法而不是每個項目 –

+1

什麼是'first_row'? – Barmar

+0

你能寫出預期的結果嗎? – carlosvin

回答

1

您可以使用此代碼

with open('some.csv', 'wb') as f: 
    writer = csv.writer(f) 
    writer.writerow(first_row) 

作家迭代的變量,將每個元素寫入下一個單元格。 當你給它的字符串值,作家迭代它。 因此,要編寫所有可以添加循環的行。

with open('some.csv', 'wb') as f: 
    writer = csv.writer(f) 
    writer.writerow(first_row) 
    list_of_rows = [['1', '2', '3'], ] 
    for row in list_of_rows: 
     writer.writerow(row) 
    # but better to use writerows 
    writer.writerows(list_of_rows) 
0

你做錯了。您可以使用for循環,當你有清單/行的列表,並要WIRTE這些文件中加入:

with open('some.csv', 'wb') as f: 
    writer = csv.writer(f, fieldnames=head) 
    writer.writeheader() 
+0

數據列怎麼樣? – Barmar

+0

也是什麼字段名,它是在Python 2.7中? – Quantico

+0

這就是如何傳遞標題行。或者,你可以使用'writer.writerow(head)' –