如何return 最大深度的子目录路径?

How to return the paths of sub directories at maximum depth?

使用 os.walk(),我设法 return 每个子目录的最大深度:

>>> 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

你会怎么做?

您可以过滤掉包含非空子目录列表的条目,这些条目存储为 os.walk:

生成的元组的第二项
sites = [root for root, dirs, _ in os.walk('.') if not dirs]