csv.writer返回奇怪的结果

时间:2015-01-23 09:11:03

标签: python csv

我的代码如下:

import csv

mesta=["Ljubljana","Kranj","Skofja Loka","Trzin"]
opis=["ti","mene","ti mene","ne ti mene"]
delodajalci=["GENI","MOJEDELO","MOJADELNICA","HSE"]
ime=["domen","maja","andraz","sanja"]
datum=["2.1.2014","5.10.2014","11.12.2014","5.5.2014"]

with open('sth.csv','w',newline='') as csvfile:
    zapis = csv.writer(csvfile, delimiter=' ')
    dolzina=len(datum)
    i=0
    while i<dolzina:
        zapis.writerows([ime[i]+","+delodajalci[i]+","+opis[i]+","+datum[i]+","+mesta[i]])
        i+=1

由于一些奇怪的原因,我的结果如下: d G G N N I t i 2。 1。 2 0 1 4 L j u b l j a n a m a j a M O J E D E L o e e e 5 1 0。 2 0 1 4 K r a n j a n d r a z M O J A D E L N I C A t i&#34; &#34; 1 1。 1 2。 2 0 1 4 S k o f j a&#34; &#34; L o k a s a n j a H S E n e&#34; &#34;我和#34; &#34;是5。 5。 2 0 1 4 T r z i n

所以一个4行x 5列表。

我想建议如何制作这些白色空间和&#34; &#34;走开。因此,例如d o m e n将是domen和S k o f j a&#34; &#34; L o k a,Skofja Loka。 我会永远感激你的帮助。哦,如果没有任何其他模块可以做到更好,因为我在这台计算机上安装它们时遇到问题:(

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

import csv

mesta=["Ljubljana","Kranj","Skofja Loka","Trzin"]
opis=["ti","mene","ti mene","ne ti mene"]
delodajalci=["GENI","MOJEDELO","MOJADELNICA","HSE"]
ime=["domen","maja","andraz","sanja"]
datum=["2.1.2014","5.10.2014","11.12.2014","5.5.2014"]

with open('sth.csv','w') as csvfile:
    zapis = csv.writer(csvfile)
    zapis.writerows(zip(ime,delodajalci,opis,datum,mesta))

创建输出:

  

domen,GENI,TI,2014年2月1日,卢布尔雅那

     

玛雅,MOJEDELO,梅内,2014年5月10日,克拉尼

     

andraz,MOJADELNICA,ti mene,11.12.2014,Skofja Loka

     Sanja,HSE,ne ti mene,5.5.2014,Trzin

在你所拥有的内容中,作家们获得了一个字符串(包括你想要的逗号)。你希望它只打印出那个字符串。但是csvwriter想要在条目之间打印一个带分隔符的列表。它只有一个字符串,所以当它将它作为一个列表处理时,每个字符都被打印出来,然后是分隔符。

在我所做的事情中,我让作家收到了一堆清单。每个列表都来自zip,因此每个列表都包含zip参数的第i个条目。

编辑删除了dolzina,i = 0,因为不再需要了。