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

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

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

Программа сохранения лога действий в файл

Теперь соберём всё изученное в одну рабочую программу. Задача простая: пользователь вводит команды в цикле, а программа записывает каждое действие в файл log.txt.

Вот полный вариант:

print('Программа запущена. Введите действие или "стоп" для завершения.')

while True:
    действие = input('> ')
    строка = f'Действие: {действие}\n'

with open('log.txt', 'a', encoding='utf-8') as f:
        f.write(строка)

if действие.lower() == 'стоп':
        break

print('Лог сохранён в log.txt')

Что здесь происходит по шагам:

  1. Программа запрашивает ввод в бесконечном цикле.

  2. Из введённого текста формируется строка лога — 'Действие: открыл меню\n' — с явным \n в конце.

  3. Файл открывается в режиме 'a': каждый вызов добавляет строку в конец, не трогая предыдущие записи.

  4. Конструкция with гарантирует, что файл закрывается сразу после записи.

  5. Когда пользователь вводит 'стоп', цикл завершается.

После нескольких вводов log.txt будет выглядеть так:

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

Для учебного логгера файл открывается в режиме 'a' внутри цикла: конструкция with закрывает его после каждой записи, а старые строки сохраняются. Это простой вариант для начинающего; сравнивать стратегии буферизации в этом уроке не требуется.

Если нужно сбросить лог перед новым сеансом, достаточно один раз открыть файл в режиме 'w' в самом начале программы:

# Очищаем лог перед стартом нового сеанса
with open('log.txt', 'w', encoding='utf-8') as f:
    f.write('=== Новый сеанс ===\n')

После этого все последующие записи через 'a' будут добавляться к этому чистому началу. Это типичная схема: 'w' один раз при старте для инициализации, 'a' во всём остальном коде для накопления.