如何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]
使用 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]