1
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()'를 사용하려고 했습니까? 예를 들어'vm = next (경로, d)에 대한 경로, dirs, os.walk (폴더)의 d에 d == vm_name 인 경우 ')' – jfs
디버거를 사용하거나 적어도 인쇄해야합니다. 오류를 지역화합니다. – Andrey
'os.walk'에 대해 들어 본 적이 없습니다. 확실히 사용하려고합니다. – Amby