如何用CSV逗号分隔

时间:2018-08-27 08:43:38

标签: python csv

我有清单:

document.getElementsByName("first")[0].addEventListener("blur", function (){
     document.getElementsByName("second")[0].value = "";
})
document.getElementsByName("second")[0].addEventListener("blur", function (){
     document.getElementsByName("first")[0].value = "";
})

我希望csv像(“”在一个单元格中)

x=["2018-08-27 15:21:49","2018-08-27 15:21:52","2018-08-27 15:21:56"]
y=["5523","3512","3383"]

,但是以下代码无法正常工作。如果我不使用[row],则每个单元格都将填充一个字符。我知道这很容易,但是请您提供帮助吗?我的大脑只是一片空白,无法解决... 谢谢!

"2018-08-27 15:21:49" "5523"
"2018-08-27 15:21:52" "3512"

2 个答案:

答案 0 :(得分:3)

您快到了。您需要做的是使用writer.writerow,但要确保不要使用row=x[i]+','+y[i],因为它将使它成为单个字符串,并且将成为一行而不是2行。

import csv
x=["2018-08-27 15:21:49","2018-08-27 15:21:52","2018-08-27 15:21:56"]
y=["5523","3512","3383"]
L=[]
with open("test.csv","w",newline='') as f:
    writer=csv.writer(f)
    for i in range(len(x)):
        writer.writerow([x[i], y[i]])

更新:

当一个人使用writer.writerow(row)时,它不能按预期结果工作,因为如果看到writerow的实现

def writerow(self, row):
    if sys.version_info[0] < 3:
        r = []
        for item in row:
            if isinstance(item, text_type):
                item = item.encode('utf-8')
            r.append(item)
        row = r
    self.writer.writerow(row)

您可以看到输入row上存在循环,因此它期待一个列表,但是当您提供一个字符串时,它将简单地遍历该字符串并将其视为字符数组。这就是为什么csv文件会是这样的原因

2,0,1,8,-,0,8,-,2,7, ,1,5,:,2,1,:,4,9,",",5,5,2,3
2,0,1,8,-,0,8,-,2,7, ,1,5,:,2,1,:,5,2,",",3,5,1,2
2,0,1,8,-,0,8,-,2,7, ,1,5,:,2,1,:,5,6,",",3,3,8,3

答案 1 :(得分:0)

import pandas as pd
x=["2018-08-27 15:21:49","2018-08-27 15:21:52","2018-08-27 15:21:56"]
y=["5523","3512","3383"]
date_list = pd.DataFrame(
    {
     'date': x,
     'num': y,
    })
date_list.to_csv('new.csv', sep='\t')

这可能会有所帮助。