← Все вопросы

Как дописать строку в конец файла, не стирая старое содержимое?

Задан 24 дня назад732 просмотров2 ответа
14

Открываю файл через open('log.txt', 'w') и записываю новую строку, но каждый раз файл оказывается пустым — остаётся только последняя запись, всё предыдущее пропадает. Как добавлять в конец, сохраняя то, что уже было?

2 ответа

22

Режим 'w' всегда обрезает файл до нуля при открытии. Тебе нужен 'a' (append) — он не стирает, а дописывает в конец:

with open('log.txt', 'a', encoding='utf-8') as f:
    f.write('новая строка\n')

Не забудь \n сам — write перенос строки не добавляет. Если файла нет, 'a' его создаст.

Михаил Попов Спасибо, я как раз забывал \n и всё слипалось в одну строку · 12 дней назад
Evgeniy Arapov Ещё есть 'a+' если нужно потом и читать из этого же файла · 9 дней назад
6

'a' вместо 'w'.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект