← Все вопросы
Как дописать строку в конец файла, не стирая старое содержимое?
14
Открываю файл через open('log.txt', 'w') и записываю новую строку, но каждый раз файл оказывается пустым — остаётся только последняя запись, всё предыдущее пропадает. Как добавлять в конец, сохраняя то, что уже было?
3 ответа
22
Режим 'w' всегда обрезает файл до нуля при открытии. Тебе нужен 'a' (append) — он не стирает, а дописывает в конец:
with open('log.txt', 'a', encoding='utf-8') as f:
f.write('новая строка\n')
Не забудь \n сам — write перенос строки не добавляет. Если файла нет, 'a' его создаст.
Михаил Попов Спасибо, я как раз забывал \n и всё слипалось в одну строку · 1 месяц назад
Evgeniy Arapov Ещё есть 'a+' если нужно потом и читать из этого же файла · 1 месяц назад
6
'a' вместо 'w'.
0
Чтобы добавить данные в конец файла, сохранив старое содержимое, нужно использовать режим 'a' (append — добавление).
Ваш ответ
Войдите, чтобы ответить на вопрос.