2011-09-23 350 views
13

everyone.I列出了一個列表,我想用列和行將它們寫入一個csv文件中。我試過了這些編輯器,但它不是我想要的。我的列表的一個示例如下:如何在python的列表中將數據寫入csv文件中的列和行?

[[1, 2], [2, 3], [4, 5]] 

感謝您的任何幫助。

有了這個:

example=csv.writer(open('test.csv', 'wb'), delimiter=' ') 
example.writerows([[1, 2], [2, 3], [4, 5]]) 

我在旁邊小區的小區和2送1 2單元,2 3的電池等二十多個國家不是1。

我應該已經更清楚了。我需要將這個例子列表寫入一個文件,所以當我用excel打開它時,每個元素都在它自己的單元格中。 我的輸出應該是這樣的:

1 2 
2 3 
4 5 

在diferent小區內的每個元素。

+1

不具有CSV世界太大的意義。在任何情況下,你的代碼*都會*做你說你想要的。你如何顯示輸出文件? –

回答

14

提供的示例使用csv模塊,非常棒!此外,你總是可以簡單地使用格式的字符串,如以下暫定例子寫入一個文本文件:

l = [[1, 2], [2, 3], [4, 5]] 

out = open('out.csv', 'w') 
for row in l: 
    for column in row: 
     out.write('%d;' % column) 
    out.write('\n') 
out.close() 

我用;作爲分隔符,因爲它最具有的Excell(你的需求之一)。

希望它有幫助!

+1

你有額外的;在每行的結尾處。一次編寫一個單元格很笨拙。一個 ;在使用逗號作爲小數點的語言環境中,僅適用於Excel ** **。爲什麼在他所需要的只是調整一下「csv.writer」的調用時顯示OP這個DIY東西​​? –

+0

@John Machin:其他一些讀者可能更喜歡這種方法。如果他已經使用'csv',我懷疑OP會回去做DIY。但我認爲,在這裏你可以學習新的做事方式,並從中選擇。此外,使用字符串格式化操作,您還可以使用您的首選字段分隔符,行尾等。 – heltonbiker

2

那麼,如果你正在寫一個CSV文件,那你爲什麼要用空格作爲分隔符? CSV文件使用逗號或分號(在Excel中)作爲單元格分隔符,因此如果使用delimiter=' ',則不會生成CSV文件。您應該簡單地使用默認分隔符和方言構造csv.writer。如果你想讀的CSV文件後到Excel中,你可以明確地指定Excel的話只是爲了讓您的意圖明顯(雖然這方言是默認反正):

example = csv.writer(open("test.csv", "wb"), dialect="excel") 
10
>>> import csv 
>>> with open('test.csv', 'wb') as f: 
...  wtr = csv.writer(f, delimiter= ' ') 
...  wtr.writerows([[1, 2], [2, 3], [4, 5]]) 
... 
>>> with open('test.csv', 'r') as f: 
...  for line in f: 
...   print line, 
... 
1 2 <<=== Exactly what you said that you wanted. 
2 3 
4 5 
>>> 

爲了得到它,這樣它可以通過Excel進行合理加載,除非您處於需要分號的地區(例如歐洲),否則您需要使用逗號(csv默認值)作爲分隔符。

2

與這些代碼一搏:「在細胞」

>>> import pyexcel as pe 
>>> sheet = pe.Sheet(data) 
>>> data=[[1, 2], [2, 3], [4, 5]] 
>>> sheet 
Sheet Name: pyexcel 
+---+---+ 
| 1 | 2 | 
+---+---+ 
| 2 | 3 | 
+---+---+ 
| 4 | 5 | 
+---+---+ 
>>> sheet.save_as("one.csv") 
>>> b = [[126, 125, 123, 122, 123, 125, 128, 127, 128, 129, 130, 130, 128, 126, 124, 126, 126, 128, 129, 130, 130, 130, 130, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 134, 134, 134, 134, 134, 134, 134, 134, 133, 134, 135, 134, 133, 133, 134, 135, 136], [135, 135, 136, 137, 137, 136, 134, 135, 135, 135, 134, 134, 133, 133, 133, 134, 134, 134, 133, 133, 132, 132, 132, 135, 135, 133, 133, 133, 133, 135, 135, 131, 135, 136, 134, 133, 136, 137, 136, 133, 134, 135, 136, 136, 135, 134, 133, 133, 134, 135, 136, 136, 136, 135, 134, 135, 138, 138, 135, 135, 138, 138, 135, 139], [137, 135, 136, 138, 139, 137, 135, 142, 139, 137, 139, 138, 136, 137, 141, 138, 138, 139, 139, 139, 139, 138, 138, 138, 138, 137, 137, 137, 137, 138, 138, 136, 137, 137, 137, 137, 137, 137, 138, 148, 144, 140, 138, 137, 138, 138, 138, 137, 137, 137, 137, 137, 138, 139, 140, 141, 141, 141, 141, 141, 141, 141, 141, 141], [141, 141, 141, 141, 141, 141, 141, 139, 139, 139, 140, 140, 141, 141, 141, 140, 140, 140, 140, 140, 141, 142, 143, 138, 138, 138, 139, 139, 140, 140, 140, 141, 140, 139, 139, 141, 141, 140, 139, 145, 137, 137, 145, 145, 137, 137, 144, 141, 139, 146, 134, 145, 140, 149, 144, 145, 142, 140, 141, 144, 145, 142, 139, 140]] 
>>> s2 = pe.Sheet(b) 
>>> s2 
Sheet Name: pyexcel 
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ 
| 126 | 125 | 123 | 122 | 123 | 125 | 128 | 127 | 128 | 129 | 130 | 130 | 128 | 126 | 124 | 126 | 126 | 128 | 129 | 130 | 130 | 130 | 130 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 132 | 134 | 134 | 134 | 134 | 134 | 134 | 134 | 134 | 133 | 134 | 135 | 134 | 133 | 133 | 134 | 135 | 136 | 
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ 
| 135 | 135 | 136 | 137 | 137 | 136 | 134 | 135 | 135 | 135 | 134 | 134 | 133 | 133 | 133 | 134 | 134 | 134 | 133 | 133 | 132 | 132 | 132 | 135 | 135 | 133 | 133 | 133 | 133 | 135 | 135 | 131 | 135 | 136 | 134 | 133 | 136 | 137 | 136 | 133 | 134 | 135 | 136 | 136 | 135 | 134 | 133 | 133 | 134 | 135 | 136 | 136 | 136 | 135 | 134 | 135 | 138 | 138 | 135 | 135 | 138 | 138 | 135 | 139 | 
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ 
| 137 | 135 | 136 | 138 | 139 | 137 | 135 | 142 | 139 | 137 | 139 | 138 | 136 | 137 | 141 | 138 | 138 | 139 | 139 | 139 | 139 | 138 | 138 | 138 | 138 | 137 | 137 | 137 | 137 | 138 | 138 | 136 | 137 | 137 | 137 | 137 | 137 | 137 | 138 | 148 | 144 | 140 | 138 | 137 | 138 | 138 | 138 | 137 | 137 | 137 | 137 | 137 | 138 | 139 | 140 | 141 | 141 | 141 | 141 | 141 | 141 | 141 | 141 | 141 | 
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ 
| 141 | 141 | 141 | 141 | 141 | 141 | 141 | 139 | 139 | 139 | 140 | 140 | 141 | 141 | 141 | 140 | 140 | 140 | 140 | 140 | 141 | 142 | 143 | 138 | 138 | 138 | 139 | 139 | 140 | 140 | 140 | 141 | 140 | 139 | 139 | 141 | 141 | 140 | 139 | 145 | 137 | 137 | 145 | 145 | 137 | 137 | 144 | 141 | 139 | 146 | 134 | 145 | 140 | 149 | 144 | 145 | 142 | 140 | 141 | 144 | 145 | 142 | 139 | 140 | 
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ 
>>> s2[0,0] 
126 
>>> s2.save_as("two.csv") 
相關問題