在Python dictWriter中为每一行添加文本信息

时间:2017-11-20 03:34:22

标签: python-3.x dictionary export-to-csv

我在Python 3中使用DictWriter将Object的状态输出到文本文件中,如下所示:

def to_csv(self):
    with open('filename', 'w') as myfile:
        fieldnames = ['a1', 'a2', 'a3', 'a4', 'a5']
        wr = csv.DictWriter(myfile, fieldnames=fieldnames)
        wr.writeheader()
        for idx, row in enumerate(self.tasks):
            wr.writerow(row)

但是我想在输出中添加一个额外的列。这是我想要的:

wr.writerow(row + 'task number:'+idx)

任何pythonic方式这样做?我想我可以为每一行准备一个字符串,将任务编号附加到该字符串&然后将它传递给writerow(使用常规编写器而不是DictWriter),但我不想乱用字符串&如果可能,直接使用DictWriter ......

1 个答案:

答案 0 :(得分:1)

如果我这样做,我会创建一个新的dict并在每一行中更新它。这可能是最明确,最明显的方法之一。

fieldnames = ['a1', 'a2', 'a3', 'a4', 'a5', 'task number']
wr = csv.DictWriter(myfile, fieldnames=fieldnames)
wr.writeheader()
for idx, row in enumerate(self.tasks):
    seed = {'task number': idx}
    seed.update(row)
    wr.writerow(seed)