Запись в текстовый файл
Уроки курсаЗапись в текстовый файл
Программа сохранения лога действий в файл
Теперь соберём всё изученное в одну рабочую программу. Задача простая: пользователь вводит команды в цикле, а программа записывает каждое действие в файл 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')
Что здесь происходит по шагам:
Программа запрашивает ввод в бесконечном цикле.
Из введённого текста формируется строка лога —
'Действие: открыл меню\n'— с явным\nв конце.Файл открывается в режиме
'a': каждый вызов добавляет строку в конец, не трогая предыдущие записи.Конструкция
withгарантирует, что файл закрывается сразу после записи.Когда пользователь вводит
'стоп', цикл завершается.
После нескольких вводов log.txt будет выглядеть так:
Действие: открыл настройки Действие: изменил имя пользователя Действие: сохранил изменения Действие: стоп
Для учебного логгера файл открывается в режиме 'a' внутри цикла: конструкция with закрывает его после каждой записи, а старые строки сохраняются. Это простой вариант для начинающего; сравнивать стратегии буферизации в этом уроке не требуется.
Если нужно сбросить лог перед новым сеансом, достаточно один раз открыть файл в режиме 'w' в самом начале программы:
# Очищаем лог перед стартом нового сеанса
with open('log.txt', 'w', encoding='utf-8') as f:
f.write('=== Новый сеанс ===\n')
После этого все последующие записи через 'a' будут добавляться к этому чистому началу. Это типичная схема: 'w' один раз при старте для инициализации, 'a' во всём остальном коде для накопления.
