csv writer стирает данные в файле при записи

Код записи данных:

with open("inbox.csv", mode="w", encoding='utf-8') as file:
    w = csv.writer(file, delimiter = ",")
    w.writerow(["time", "id", "empl"])

Вывожу данные:

введите сюда описание изображения

Хочу добавить данные:

with open("inbox.csv", mode="w", encoding='utf-8') as file:
    w = csv.writer(file, delimiter = ",")
    w.writerow(["11", "22", "33"])

Вывожу:

введите сюда описание изображения

Предыдущие данные стерлись. Мне нужно добавлять данные в файл в разные моменты времени, а не перезаписывать. Добавлял в код:

file.close()

Но это не помогло.

Подскажите, в чем проблема


Ответы (1 шт):

Автор решения: Константин Николаевич Бояр II

Все потому что в строке

with open("inbox.csv", mode="w", encoding='utf-8') as file:

У вас mode = 'w', а он сначала создает новый файл, а если файл с таким именем уже есть то усекает его, потом записывает в него данные, для того что бы записать данные в файл без изменения старых данных попробуйте указать mode = "a", этот параметр запишет данные в файл без его усечения

with open("inbox.csv", mode="a", encoding='utf-8') as file:

→ Ссылка