【问题标题】:How to find directory in python recursively如何递归地在python中查找目录
【发布时间】:2018-11-28 00:14:38
【问题描述】:

说,我的目录结构如下:

foo1/
├── bar2/
│   └── ...
└── bar4/
    └── ...

我想编写一个函数来查找我正在寻找的目录及其父目录,例如

def directory_find(atom):
    # ....

directory_find(bar4)

所以这会返回我foo3/bar4 结果,父目录最初可能不知道,所以这就是我考虑递归搜索的原因。

似乎os 模块不能满足我的要求,因为它只适用于这种方式的文件。

【问题讨论】:

标签: python function directory


【解决方案1】:

这就是os.walk() 为您所做的;它会遍历一个嵌套的目录结构,并在每一步告诉你文件名和目录是什么。

您的搜索可以实现为:

def directory_find(atom, root='.'):
    for path, dirs, files in os.walk(root):
        if atom in dirs:
            return os.path.join(path, atom)

演示:

>>> import os
>>> os.makedirs("foo1/bar2", exist_ok=True)
>>> os.makedirs("foo1/bar4", exist_ok=True)
>>> directory_find('bar2')
'./foo1/bar2'
>>> directory_find('bar4')
'./foo1/bar4'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多