不存在时创建新文件和存在时追加新数据的文件模式



我需要执行以下操作:

  1. 如果 CSV 文件不存在,则创建该文件,如果存在,则追加数据
  2. 创建新的 CSV 文件时,使用 dict1 中的标题创建。

我的代码:

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()

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

 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('%sn' % header)
 f.write('%sn' % 'name1,25')
 f.close()

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

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

相关内容

最新更新