将列表写入python中的CSV列时出错

时间:2017-08-25 05:15:28

标签: python csv

我想将列表写入csv文件的第三列。

LazySink

然而,我得到的输出总是在其间有一行空,如下所示。

    collection.rawCollection().createIndex({ createdAt: -1 });

我想知道如何使其正确,并将列表放在csv的第三列。

1 个答案:

答案 0 :(得分:1)

使用空白<​​/ h1>

您可以通过在listow参数中将“None”条目添加到writerow()来轻松添加空列。一个完整的例子如下:

import csv
import tempfile

list = ['cat', 'dog', 'duck', 'goat']

name = None
with tempfile.NamedTemporaryFile('w', delete=False) as f:
    writer = csv.writer(f)
    for val in list:
        writer.writerow([None, None, val])

    name = f.name

with open(name, 'r') as f:
    contents = f.read()
    print(contents)

结果是:

,,cat
,,dog
,,duck
,,goat

使用数字

为了让数字从零而不是空格开始,您可以像这样修改:

import csv
import tempfile

list = ['cat', 'dog', 'duck', 'goat']

name = None
with tempfile.NamedTemporaryFile('w', delete=False) as f:
    writer = csv.writer(f)
    pos = 0
    for val in list:
        writer.writerow([str(pos), str(pos+1), val])
        pos += 2

    name = f.name

with open(name, 'r') as f:
    contents = f.read()
    print(contents)
    print(dir(f))

这导致以下结果:

0,1,cat
2,3,dog
4,5,duck
6,7,goat