当不存在时创建新的文件模式,并在存在时附加新数据

时间:2016-05-22 06:46:44

标签: python file csv

我需要做以下事情:

  1. 创建一个csv文件(如果它不存在),附加数据(如果存在)
  2. 创建新的csv文件时,使用dict1中的标题创建。
  3. 我的代码:

    def main():
        list1 = [ 'DATE','DATASET','name1','name2','name3']
        dict1 =dict.fromkeys(list1,0)
        with open('masterResult.csv','w+b')as csvFile:
            header = next(csv.reader(csvFile))
            dict_writer = csv.DictWriter(csvFile,header,0)
            dict_writer.writerow(dict1)
    
    if __name__ =='__main__':
        main()
    

2 个答案:

答案 0 :(得分:2)

我已经编写了以下示例代码,您可以参考并使用它来满足您的要求。首先,如果你使用append模式打开文件,你可以在文件存在时附加,如果文件不存在则重新写入。现在,进入标题编写,您可以在之前检查文件的大小。如果大小为零,那么它显然是一个新文件,您可以先写入标题。如果大小不为零,则只能附加数据记录而不写入标题。以下是我的示例代码。当您第一次运行它时,它将创建带有标题的文件。下次运行代码时,它将仅附加数据记录而不附加标题。

 import os
 header='Name,Age'
 filename='sample.csv'
 filesize=0
 if(os.path.exists(filename) and os.path.isfile(filename)):
    filesize=os.stat(filename).st_size
 f=open(filename,'a')
 if(filesize == 0):
    f.write('%s\n' % header)
 f.write('%s\n' % 'name1,25')
 f.close()

答案 1 :(得分:1)

w模式将覆盖现有文件。相反,您需要使用a(追加)模式:

with open('masterResult.csv','a+b') as csvFile:
    # here -------------------^