向 Python dictWriter 中的每一行添加文本信息
Add text info to each row in Python dictWriter
我在 Python 3 中使用 DictWriter 将对象的状态输出到文本文件中,如下所示:
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如果可能直接...
如果我这样做,我会创建一个新的字典并在每一行中更新它。这可能是最清晰、最明显的方法之一。
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)
我在 Python 3 中使用 DictWriter 将对象的状态输出到文本文件中,如下所示:
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如果可能直接...
如果我这样做,我会创建一个新的字典并在每一行中更新它。这可能是最清晰、最明显的方法之一。
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)