2015-04-20 3 views
0

У меня есть точка Q (кортеж), которая создается каждый раз, когда я вызываю функцию. Как написать новую точку Q в файл csv, так что первый столбец - координата x, второй столбец - координата y, а третий столбец - координата z, не перезаписывая файл ?. Спасибоpython write to csv file

with open('points.csv', 'w') as csvfile: 
    fieldnames = ['x', 'y','z'] 
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames) 
    writer.writeheader() 
    for val in q: 
     writer.writerow({'x':q[0] , 'y': q[1], 'z': q[2]}) 
+2

Что вы хотите сказать? – harald

+0

Я изменил сообщение сейчас. Пожалуйста, посмотрите – Andrei

+1

вместо «w» при открытии файла, если вы хотите записать новые строки в этот файл. – jester112358

ответ

0

Вы должны изменить способ открытия файла - режим «W» всегда стоит для создания/усечения файла. Просто используйте «а» (для «добавления») вместо:

with open('points.csv', 'a') as csvfile: 
    ... 

Конечно, если файл уже existsm вы не хотите переписывать заголовок каждый раз, когда вы вновь открыть его - так, вы могли бы проверить существует ли файл до его открытия:

import os 
file_exists = os.path.exists("points.csv") 
with ... as csvfile: 
    writer = ... 
    if not file_exists: 
     writer.writeheader() 
    ... 
+0

отличный помощник, Cheers – Andrei