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

Python递归从文件夹或子文件夹中查找项目,python,recursion,Python,Recursion,我现在有了这个结构,我写的方法是: Folder1 |_Folder2 | |_vm1 | |_vm2 | |_vm3 |_vm4 |_vm5 |_vm6 嵌套文件夹可以具有任何深度。此方法未按预期工作 我怎么会在这里 您没有在其中一个分支中返回任何内容: def find_vm(folder, vm_name): for item in folder:

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

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

此外,如果一个名称位于多个子文件夹中,您需要决定该怎么办

这是学习递归的练习吗?您尝试过使用os.walk吗?e、 例如,vm=nextos.path.joinpath,d代表路径,dirs,uu在os.walkfolder中代表dirs中的d如果d==vm_name,您应该使用调试器或至少打印来定位错误。从未听说过os.walk。我一定会尝试使用它。
...
    ...
        if isinstance(item, my_folder_object):
            val = find_vm(item, vm_name)
            if val is not None:
                return val
        ...
            ...