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

Стандартные библиотеки в Python. Библиотека os. Ещё один поиск по файловой системе. Приложение 4 к видео 10

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

Приложение к уроку

См. также Приложение 1, Приложение 2, Приложение 3.

Ещё один механизм поиска по файловой системе

Ну и наконец ещё один способ обхода дерева каталогов файловой системы.

В библиотеке os есть замечательный метод walk(). Это метод позволяет осуществлять поиск по дереву файловой системы. При это в самой программе это просто цикл, так как реальный поиск по дереву происходит внутри метода.

Заголовок метода имеет структуру

os.walk(top, topdown=True, onerror=None, followlinks=False)

  • Первый параметр содержит полный путь к каталогу, откуда будет осуществляться поиск.
  • Второй параметр определяет куда осуществляется поиск: вверх или вниз по дереву.
  • Во втором параметр указывается функция, которая будет вызвана с одним параметром, показывающем, какая ошибка произошла. Параметр представляет собой объект, содержащий ряд полей, уточняющих суть ошибки.
  • Четвертый параметр определяет переходить или нет по символьной ссылке.

Метод по сути является итератором, позволяющим использовать его в цикле. На каждой итерации метод возвращает кортеж, состоящий из трёх элементов.

  • Первый элемент — полное имя каталога, содержимое которого возвращается методом.
  • Второй элемент — список элементов каталога, являющихся каталогами.
  • Третий элемент — список элементов каталога, которые не являются каталогами.

Обратимся теперь к программе ниже. Это еще одна программа наряду с программами из Приложения 2 и Приложения 3. Она более проста и не содержит рекурсии.

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

Как видим программа очень проста. Но как всегда, когда вы доверяете часть работы библиотеки, надо понимать, что, возможно, она не делает. Я всегда предпочитаю более детальные собственные алгоритмы, которые позволяют держать управление в своих руках. Ну, кому как.

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

Всё просто, как команды в консоли
Всё просто, как команды в консоли