我在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 ......
答案 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)