← Все вопросы

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

Задан 2 месяца назад756 просмотров3 ответа
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 — добавление).

Ваш ответ

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