Строки, модули и файлы

Запись в текстовый файл

Содержание курса

Дозапись в действии: режим 'a' и накопление данных

Режим 'a' уже введён, и понятно, что он добавляет данные в конец. Но возникает закономерный вопрос: как Python знает, где именно находится этот конец, если файл закрывался и открывался заново?

Рассмотрим простой случай — два независимых открытия:

# Первый запуск программы
with open('log.txt', 'a', encoding='utf-8') as f:
    f.write('10:00 — программа запущена\n')

# ... время прошло, файл закрыт ...

# Второй запуск программы
with open('log.txt', 'a', encoding='utf-8') as f:
    f.write('10:15 — пользователь открыл меню\n')

Ответ — на уровне операционной системы. При каждом открытии в режиме 'a' ОС сама находит текущий конец файла и ставит курсор записи туда. Python не читает файл, не считает байты и не запоминает смещение между запусками — это делает ОС при каждом обращении заново.

Из этого следует важное практическое свойство: режим 'a' работает корректно независимо от того, сколько раз файл открывался и закрывался, из одного места кода или из разных. Каждое открытие — это независимый запрос к ОС найти конец файла. Именно поэтому 'a' надёжен для любого сценария накопления данных — от простого цикла до нескольких скриптов, пишущих в один файл по очереди.

Начать заново?

Помощник начнёт новый диалог по этой задаче. Текущая переписка останется в истории до конца срока хранения.

О переписке

Можно приложить до трёх фото PNG, JPEG или WebP по 5 МБ.

Переписка и фото хранятся 90 дней после последнего принятого сообщения. Преподаватель получит доступ к диалогу, когда вы попросите его помочь.

Проверка решения остаётся отдельным действием.