2016-05-22 2 views
1

мне нужно сделать следующее:какой режим файл, чтобы создать новый, если не существует и добавить новые данные, когда существует

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

ответ

2

я написал ниже пример кода, который вы можете ссылаться и использовать для вашего требования. Прежде всего, если вы используете, добавьте режим для открытия файла, вы можете добавить, если файл существует, и вновь писать, если он не существует. Теперь, приступая к написанию заголовка, вы можете проверить размер файла ранее. Если размер равен нулю, значит, это новый файл, и вы можете сначала написать свой заголовок. Если размер не равен нулю, вы можете добавлять только записи данных без записи заголовка. Ниже приведен пример кода. В первый раз, когда вы запустите его, он создаст файл с заголовком. В следующий раз, когда вы запустите код, он будет добавлять только записи данных, а не заголовок.

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

Большое спасибо, это именно то, что я ищу. Теперь я знаю, что делать. –

1

Режим w будет перезаписывать существующий файл. Вместо этого необходимо использовать режим a (добавление):

with open('masterResult.csv','a+b') as csvFile: 
    # here -------------------^ 
Смежные вопросы