КОНСПЕКТ ПРЕПОДАВАТЕЛЯ · C19

Чтение файлов и папок

Формат и цель

Практику с файлами, окружением, модулями и pytest проверяем в локальной папке проекта. Браузерный редактор подходит для отдельных фрагментов логики. Консольная программа на Python. Ученик пишет код, запускает его и проверяет текстовый результат. На занятие можно отвести 45–60 минут; темп меняется по опыту группы.

Данные могут храниться отдельно от программы в текстовых файлах. Научимся задавать пути, читать UTF-8 и обрабатывать строки, не теряя пустые записи и последние строки файла.

Подготовка и демонстрация

Открой урок и заранее запусти пример в браузере. Для локального проекта подготовь Python 3 и редактор. Покажи входные данные и ожидаемый вывод, затем измени один параметр и попроси предсказать результат.

Порядок занятия

  1. 5 минут: покажи итог «Просмотрщик текстовых файлов» и обсуди, какие данные нужны программе.
  2. 15 минут: разбери блоки теории, после каждого попроси объяснить одну строку своими словами.
  3. 15 минут: самостоятельные задачи во вкладке «Задачи», затем сравнение подходов.
  4. 15–20 минут: мини-проект, проверка обычных и граничных случаев.
  5. 5 минут: сохранение main.py и README, короткая демонстрация решения.

Учебные темы

  • 1. Путь и рабочая папка
  • 2. Чтение с with
  • 3. Все строки, включая пустые
  • 4. Список файлов в папке

Вопрос группе

Где Python ищет Path("notes.txt")?

Ориентир для обсуждения

В текущей рабочей папке процесса. Её можно узнать через Path.cwd().

Типичные трудности

  • Искать относительный файл в другой рабочей папке.
  • Не указать кодировку для русскоязычных учебных данных.
  • Удалить пустые строки до того, как их требуется посчитать.

Критерии готового проекта

Локальная программа показывает документы из папки и короткую статистику выбранного текста.

  • Пустой файл содержит 0 строк.
  • Внутренняя пустая строка посчитана.
  • В папке без .txt-файлов программа не просит невозможный номер.

Проси показать результат и объяснить ключевое решение. Совпадение одного примера вывода не заменяет проверку остальных случаев.

Задание мини-проекта и пример результата →