Как вернуть пути подкаталогов на максимальную глубину? - PullRequest
0 голосов
/ 20 февраля 2019

Используя os.walk(), мне удалось вернуть все подкаталоги на максимальной глубине:

>>> import os
>>> sites = [x[0] for x in os.walk('./')]
>>> print(sites)
['./', './Saudi_arabia', './Saudi_arabia/Periodic_barchans', './Saudi_arabia/Finger_rocks', './Mars', './Niger', './Maroc', './Algeria', './China']

Однако я бы хотел отфильтровать те, в которых есть каталоги.Например, ./Saudi_arabia/ не должен появляться, потому что он содержит ./Saudi_arabia/Periodic_barchans и ./Saudi_arabia/Finger_rocks.

Как бы вы это сделали?

1 Ответ

0 голосов
/ 20 февраля 2019

Вы можете отфильтровать записи с непустыми списками подкаталогов, которые сохраняются как вторые элементы кортежей, сгенерированных os.walk:

sites = [root for root, dirs, _ in os.walk('.') if not dirs]
...