Python запись в CSV-файл
У меня есть точка Q (кортеж), которая создается каждый раз, когда я вызываю функцию. Как записать новую точку Q в CSV-файл так, чтобы первый столбец был координатой x, второй столбец - координатой y, а третий столбец - координатой z без перезаписи файла?. Спасибо
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]})
1 ответ
Решение
Вы должны изменить способ открытия файла - режим "w" всегда означает создание / усечение файла. Просто используйте вместо этого "a" (для "добавления"):
with open('points.csv', 'a') as csvfile:
...
Конечно, если файл уже существует, вы не хотите перезаписывать заголовок каждый раз, когда открываете его, поэтому вы можете проверить, существует ли файл, прежде чем открывать его:
import os
file_exists = os.path.exists("points.csv")
with ... as csvfile:
writer = ...
if not file_exists:
writer.writeheader()
...