如何只列出Python中的大多数目录?

如何只列出Python中的大多数目录?,python,Python,提供mydir中的所有(子)目录。如何只获取树最底部的目录?这将只打印那些没有子目录的目录 import os for dirpaths, dirnames, filenames in os.walk(mydir): print dirpaths 像这样 for dirpath, dirnames, filenames in os.walk(mydir): if not dirnames: print dirpath, "has 0 subdirectorie

提供
mydir
中的所有(子)目录。如何只获取树最底部的目录?

这将只打印那些没有子目录的目录

import os

for dirpaths, dirnames, filenames in os.walk(mydir):
    print dirpaths
像这样

for dirpath, dirnames, filenames in os.walk(mydir):
    if not dirnames:
        print dirpath, "has 0 subdirectories and", len(filenames), "files"

我看到了两种显示叶目录的解决方案(即不包含subdir的目录)。另一方面,最底层的目录不仅是叶目录,而且是最大深度的目录。下面是计算最底层目录的粗略方法:

for dirpaths, dirnames, filenames in os.walk(mydir):
    if not dirnames: print dirpaths
导入操作系统
mydir='/Users/haiv/src/python'
最大深度=0
最底层目录=[]
对于os.walk(mydir)中的dirpath、dirname和文件名:
深度=len(dirpath.split(os.sep))
如果最大深度<深度:
最大深度=深度
底部\u最大\u目录=[dirpath]
elif max_depth==深度:
底部\u最\u目录追加(目录路径)
打印最下面的目录

递归地一直往下走,不回来。“非常底部”可能没有意义,这取决于您的目录结构。您尝试过什么吗?您能展示一个目录树的示例和您想要实现的输出吗?所谓“非常底部”是指每个路径树的结尾吗?
import os

mydir = '/Users/haiv/src/python'
max_depth = 0
bottom_most_dirs = []
for dirpath, dirnames, filenames in os.walk(mydir):
    depth = len(dirpath.split(os.sep))
    if max_depth < depth:
        max_depth = depth
        bottom_most_dirs = [dirpath]
    elif max_depth == depth:
        bottom_most_dirs.append(dirpath)
print bottom_most_dirs
import os

mydir='/home/'
print [dirpaths for dirpaths, dirnames, filenames in os.walk(mydir) if not dirnames]