如何以最大深度返回子目录的路径?

时间:2019-02-20 16:48:24

标签: python operating-system os.walk

使用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 :(得分:1)

您可以过滤出带有非空子目录列表的条目,这些列表存储为os.walk生成的元组的第二项:

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