← Все вопросы
Как дописать строку в конец файла, не стирая старое содержимое?
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'.
Ваш ответ
Войдите, чтобы ответить на вопрос.