Найти в Дзене
programmer's notes (python and more)

Стандартные библиотеки в Python. Библиотека os (поиск по файловой системе, продолжение). Приложение 3 к видео 10

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. Приложение 3 к уроку (Приложение 1, Приложение 2). Сподобился запустить Windows 10 на виртуалке и запустить на ней программу поиска из приложения 2. К моему удивлению поиск сработал, правда сама выдача абсолютных путей к файлам и каталогам выглядела странной. Но слава разработчикам Python. А сегодня мы продолжим наши поиски поисков и воспользуемся кросплатформенными возможностями библиотеки os. А также воплотим в жизнь ещё один алгоритм поиска. - Похоже он тянет с выкладыванием справочника по библиотеке os, - подумаете вы. И будете правы. В начале самое вкусное, т.е. программы и алгоритмы. А справочники будут. Вернёмся к программе из предыдущего поста. В частности обратим внимание на функцию Получение абсолютного имени файла осуществляется по правилам операционной системы Linux. Такой подход не соответствует правилам, принятым, напри

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Приложение 3 к уроку (Приложение 1, Приложение 2).

Продолжаем изучать вопрос поиска в файловой системе

Сподобился запустить Windows 10 на виртуалке и запустить на ней программу поиска из приложения 2. К моему удивлению поиск сработал, правда сама выдача абсолютных путей к файлам и каталогам выглядела странной. Но слава разработчикам Python.

А сегодня мы продолжим наши поиски поисков и воспользуемся кросплатформенными возможностями библиотеки os. А также воплотим в жизнь ещё один алгоритм поиска.

- Похоже он тянет с выкладыванием справочника по библиотеке os, - подумаете вы. И будете правы. В начале самое вкусное, т.е. программы и алгоритмы. А справочники будут.

Вернёмся к программе из предыдущего поста. В частности обратим внимание на функцию

Добавление имени файла к полному пути к каталогу, где файл находится
Добавление имени файла к полному пути к каталогу, где файл находится

Получение абсолютного имени файла осуществляется по правилам операционной системы Linux. Такой подход не соответствует правилам, принятым, например в Windows. Но как я уже сказал выше, Python обходит эти проблемы и срабатывает корректно. Однако, библиотека os, где это возможно предоставляет кроссплатформенные инструменты, позволяющие не думать (в некоторых аспектах) о различиях операционных систем.

В библиотеке os есть модуль path (или 'подбиблиотека', если хотите). И я в одной из статей остановлюсь на возможностях этого модуля. Но сегодня я просто перепишу программу поиска

Текст программы см. ниже
Текст программы см. ниже
primer69.py

Программа почти такая же, что и в предыдущем посте. Но вместо функции add() используется библиотечная os.path.join(). Она осуществляет объединение путей согласно правилам той операционной системы, в которой запускается. Замечу также, что остальные средства, используемые в программе, работают корректно в разных операционных системах.

Продолжу рассматривать вопрос о поиске по файловой системе. Попробуем несколько изменить подход к поиску. Можно ведь вместо того, чтобы формировать путь к тому или иному каталогу, делать его текущим.

Текст программы см. ниже
Текст программы см. ниже
primer70.py

Пояснение к программе.

Программа также рекурсивна и разница с предыдущей только в том, что операции производятся над текущим ка каталогом, а не над указанным через абсолютный путь к нему. Поэтому есть операция "сделать каталог текущим" и есть операции "сделать текущим родительский каталог".

Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

- Ваша программа медленно обходит дерево. - Но она же обрабатывает каждую ветку, а их много.
- Ваша программа медленно обходит дерево. - Но она же обрабатывает каждую ветку, а их много.