How can I make an array of subdirectories in Python?
我想在python中创建一个子目录数组。下面是一个布局和模型列表示例。
1 2 3 4 5 | Root | directories / \ subdir_1... subdir_n |
因此,从根目录开始,我想运行一个程序,它将列出所有子目录。如果我这样写:
1 | print(List_of_Subdirectories) |
其中,子目录列表是附加目录的列表。我将获得输出:
1 | [subdir_1, subdir_2, ... , subdir_n] |
本质上,我希望获得相同的结果,就好像我要将每个目录硬编码成一个列表一样。例如:
1 | List_of_Subdirectories = ["subdir_1","subdir_2", ... ,"subdir_n"] |
其中,subdir_n表示任意第n个目录。
与栈溢出的其他文章不同,我希望列表只包含没有元组或路径的目录名。
如果你只是想名称的目录,你可以使用这个os.walk大原因:
os.walk(目录) 将对每一个tuple subdirectory产量。第一个进入的是一个3 - tuple目录的名字。你可以在一个大的wrap这个函数返回的是列表的目录的名称,比如:
1 2 3 4 | def list_paths(path): directories = [x[1] for x in os.walk(path)] non_empty_dirs = [x for x in directories if x] # filter out empty lists return [item for subitem in non_empty_dirs for item in subitem] # flatten the list |
应该给你所有directories。
如果所有你想要的是一个安全的subdirectories的规定列出的目录,所有你需要的是一只大os.listdir directories滤波和显示。
这是作为简单的为:
1 2 | List_of_Subdirectories = list(filter(os.path.isdir, os.listdir())) print(List_of_Subdirectories) |
从
你不会是
1 2 3 4 5 | directory_elements = filter(os.path.isdir, os.listdir()) List_of_Subdirectories = [] for element in directory_elements: List_of_Subdirectories.append(element) print(List_of_Subdirectories) |