[英]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.