首页 > 解决方案 > 在 CSV Python 中写为行的标题

问题描述

我有以下代码用于创建新行并将其添加到 csv 文件。

def calcPrice(data):


   fieldnames = ["ReferenceID","clientName","Date","From","To","Rate","Price"]
   with open('rec2.csv', 'a') as csvfile:

     writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
     writer.writeheader()
     writer.writerow(data)

return 但是,它作为标题作为新行也是如此。我怎样才能防止这种情况? 在此处输入图像描述

这是整个代码的要点链接:https ://gist.github.com/chriskinyua/5ff8a527b31451ddc7d7cf157c719bba

标签: pythonpython-3.xcsv

解决方案


您可以检查文件是否已存在

import os

def calcPrice(data):

   filename = 'rec2.csv'
   write_header = not os.path.exists(filename)

   fieldnames = ["ReferenceID","clientName","Date","From","To","Rate","Price"]
   with open(filename, 'a') as csvfile:

     writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
     if write_header:
        writer.writeheader()
     writer.writerow(data)

推荐阅读