不存在时创建新文件模式,存在时追加新数据的文件模式是什么

2024-04-20 05:49:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要执行以下操作:

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

Tags: 文件csv数据csvfile代码标题datemain
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()

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

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

相关问题 更多 >