Python для новичковСтроки, модули и файлыЗапись в текстовый файл

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

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

Дозапись в действии: режим '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' надёжен для любого сценария накопления данных — от простого цикла до нескольких скриптов, пишущих в один файл по очереди.