使用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
。
您将如何做?
答案 0 :(得分:1)
您可以过滤出带有非空子目录列表的条目,这些列表存储为os.walk
生成的元组的第二项:
sites = [root for root, dirs, _ in os.walk('.') if not dirs]