Как перебирать каталоги в Python, используя Pathlib - PullRequest
0 голосов
/ 27 ноября 2018

Я работаю с Python 3, и мне нужно выполнить некоторые операции с папками, используя Pathlib и проверить, являются ли они папками.

Операция, которую я собираюсь сделать, выглядит примерно так:

from pathlib import Path
source_path = Path("path_directory_string")

for a in source_path.iterdir():
    if a.is_dir():
        for b in a.iterdir():
            if b.is_dir():
                for c in b.iterdir():
                    if c.is_dir():
                        # do something

Мой вопрос: есть ли лучший способ сделать это?Просматривая заданные в прошлом вопросы, кажется, что лучший способ сделать это - использовать метод glob из Pahtlib.Итак, поскольку у меня есть три уровня глубины, я попробовал это:

for a in source_path.glob("**/**/**"):
    if a.is_dir():
        print(a)

, и это почти работает.Проблема в том, что это возвращает не только папки самого глубокого уровня, но и их родителей.Я сделал некоторые ошибки при форматировании шаблона глобуса?Или существует лучший способ перечислить только элементы deepest_level?

1 Ответ

0 голосов
/ 27 ноября 2018

Я думаю, что вы хотите:

for a in source_path.glob("*/*/*"):
    if a.is_dir():
        print(a)

Из документации: шаблон ** означает «этот каталог и все подкаталоги, рекурсивно», тогда как один * является текстовым подстановочным знаком.

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