簡體   English   中英

如何在python中遞歸查找目錄

[英]How to find directory in python recursively

說,我有這樣的目錄結構:

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

我想編寫一個函數,該函數將找到我要查找的目錄及其父目錄,例如

def directory_find(atom):
    # ....

directory_find(bar4)

因此,這將使我返回foo3/bar4 ,因此最初可能不知道父目錄,所以這就是我考慮遞歸搜索的原因。

似乎os模塊無法滿足我的要求,因為它僅以這種方式適用於文件。

這就是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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM