Финал блока — два полноценных рабочих скрипта, не учебные обрывки, а код, который реально можно запустить и использовать. Здесь сходится вместе почти всё, что было в блоках 3 и 4.
Команды rm (глава 09) и del (глава 10) необратимы — то же
самое верно и для переименования или удаления файлов из Python-кода. Хорошая практика
для любого автоматизирующего скрипта — сначала вывести на экран, что именно
будет сделано, дать возможность просмотреть список изменений, и только
после явного подтверждения выполнить реальные действия. Оба скрипта этой главы следуют
этому принципу.
Что здесь используется из предыдущих глав: pathlib и обход файлов (глава 22),
f-строки с форматированием чисел (глава 14), функция с параметрами по умолчанию (глава 16),
docstring (глава 16), обработка ошибки OSError — например, если файл занят
другой программой (глава 21), и явная защита от несуществующей папки или отсутствия
подходящих файлов перед тем, как вообще пытаться что-то сделать.
Здесь в работе: чтение файла построчно (глава 19), .strip() и
.split() (глава 18), словарь как счётчик с методом .get()
(безопасное чтение значения с запасным по умолчанию, глава 17), обработка
FileNotFoundError (глава 21), и сортировка результата по значению — маленькая
лямбда-функция, о которой мельком упоминалось в конце главы 16, здесь применена на деле.
Оба скрипта выше вызывают функцию с "зашитыми в код" значениями ("photos",
"app.log"). Для настоящего многократно используемого инструмента удобнее
принимать путь как параметр запуска из терминала:
sys.argv — список аргументов, с которыми была запущена программа из терминала
(глава 09–12); нулевой элемент — имя самого скрипта, первый и далее — то, что реально
передано после него. Это прямой шаг к теме финального проекта книги (глава 27) —
полноценному инструменту командной строки.
Четыре главы — от установки пакетов до полноценных рабочих скриптов — закрыли путь от "знаю синтаксис" до "умею написать что-то реально полезное". Финальный блок книги выходит за пределы процедурного программирования, знакомого с глав про BASIC и Pascal, — к объектно-ориентированному подходу, инструменту версионирования кода и мосту обратно к твоему собственному миру электроники.
Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.