Python递归以从文件夹或子文件夹中查找项目

时间:2014-10-22 10:16:06

标签: python recursion

Folder1
      |_Folder2
      |       |_vm1
      |       |_vm2
      |       |_vm3
      |_vm4
      |_vm5
      |_vm6

我现在有这个结构,我写的方法是:

def find_vm(folder, vm_name):
    for item in folder:
        if isinstance(item, my_folder_object):
            find_vm(item, vm_name)
        if item.name == vm_name:
            return item

嵌套文件夹可以是任何深度。此方法无法按预期工作。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

你没有在其中一个分支中返回任何内容:

...
    ...
        if isinstance(item, my_folder_object):
            val = find_vm(item, vm_name)
            if val is not None:
                return val
        ...
            ...

另外,如果名称在多个子文件夹中,您需要决定该怎么做;