Файлы · 10 из 12
Разрезать журнал по дням
Задействованы также: Словари
Журнал ведётся одним файлом и вырос до неприличия. Стас режет его по дням, чтобы старое можно было убрать в архив.
Что сделать
Разрежьте разросшийся журнал по дням, чтобы старое можно было убрать в архив.
Что приходит
imya— имя журнала; строки видаГГГГ-ММ-ДД текстobrazec— образец имени части, например"den-{}.txt": вместо{}встанет дата
Что вернуть
Словарь «дата → сколько строк записано в её файл»; строки без даты в начале никуда не пишутся.
Допишите функцию razrezat в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В журнале две строки от 1 января и одна от 2-го. С образцом "den-{}.txt" появятся файлы den-2026-01-01.txt с двумя строками и den-2026-01-02.txt с одной, а ответ — {"2026-01-01": 2, "2026-01-02": 1}.
with open("log.txt", "w", encoding="utf-8") as f:
f.write("2026-01-01 старт\n2026-01-02 работа\n2026-01-01 конец\n")
itog = razrezat("log.txt", "den-{}.txt")
with open("den-2026-01-01.txt", encoding="utf-8") as f:
pervyy = f.read()
(itog, pervyy)
({'2026-01-01': 2, '2026-01-02': 1}, '2026-01-01 старт\n2026-01-01 конец\n')
Функция принимает имя исходного файла и образец имени для частей, например «день-{}.txt». Строки имеют вид «ГГГГ-ММ-ДД текст». Для каждого дня создаётся свой файл: в образце вместо фигурных скобок подставляется дата. Возвращает словарь: дата — число записанных строк. Строки без даты в начале пропускаются и никуда не записываются.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.