三级目录列表理解

时间:2017-07-10 11:16:24

标签: python python-3.x

我目前的实施方案是否有单线代替?

Top Level
-- Sub Level
--- Folder
-- Sub Level
--- Folder
.
.
.

要获得每个-- Folder中的-- Sub Level,我有以下内容:

dir_ = '/path/to/Top Level'
sub_lvl = [os.path.join(dir_, sub) for sub in os.listdir(dir_)]
# "folder" is always a fixed name
folders = [os.path.join(sub, "folder") for sub in sub_lvl] 

2 个答案:

答案 0 :(得分:1)

os.path.join采用任意数量的字符串。你应该检查项目是否是一个文件夹:

sub_lvl = [os.path.join(dir_, sub, "folder") for sub in os.listdir(dir_) if os.path.isdir(os.path.join(dir_,sub))]

答案 1 :(得分:1)

你去了:

folders = [os.path.join(os.path.join(dir_, sub), "folder") for sub in os.listdir(dir_)]