gpt4 book ai didi

python - 获取树中最底层子目录的列表

转载 作者:太空狗 更新时间:2023-10-29 21:29:07 33 4
gpt4 key购买 nike

我有一个特定目录的路径,我需要获取所有子目录的列表,这些子目录本身不包含任何子目录。

例如,如果我有以下树:

-father_dir:
-son_dir1:
-grandson.txt
-son_dir2:
-grandson_dir1:
-greatgrandson1.txt

我想要一个包含以下内容的列表:[son_dir1, grandson_dir1]

我尝试了什么:我使用 os.walk() 获取 father_dir 中的所有子目录,现在我尝试遍历每个子目录- 目录的内容(使用 os.listdir())并查找它是否包含目录...到目前为止我没有成功(因为 os.listdir() 没有) t 给出目录的路径,而只给出目录的名称),而且这似乎是一种非常麻烦的方法。

欢迎任何简单的解决方案。谢谢!

最佳答案

lowest_dirs = list()

for root,dirs,files in os.walk(starting_directory):
if not dirs:
lowest_dirs.append(root)

这是有效的,因为 os.walk 遍历目录,依次将每个目录设置为 root。你想知道它是不是最低级目录?这意味着它不包含其他目录,因此如果 dirs 为空,则将其放入累加器中。

如果您还想跳过 EMPTY 最低级别的文件夹,请执行以下操作:

    if files and not dirs:

如果您只想要尾部(文件夹名称,而不是整个路径),请使用:

        lowest_dirs.append(os.path.split(root)[-1])

测试一下:

>>> lowest_dirs = list()
>>> toplevel = r"U:\User\adsmith\My Documents\dump\father_dir"
>>> for root,dirs,files in os.walk(toplevel):
... if not dirs:
... lowest_dirs.append(os.path.split(root)[-1])
>>> print(lowest_dirs)
['son_dir1', 'grandson_dir1']

关于python - 获取树中最底层子目录的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22919562/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com