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
...
...