Рекурсивная функция в Python с избыточной проверкой папок
Я пишу рекурсивную функцию для поиска по короткой структуре каталогов. То, что происходит, - то, что это проверяет каждую папку правильно, но затем это открывает каждую папку СНОВА! Я не уверен, почему это так. Какие-либо предложения? (примечание: изначально цикл for dir in dirs находился внизу, но я подумал, что это может помочь переместить его. Очевидно, что это не так)
def Parse_Directory_Tree(path,filetype,a,b):
for(path,dirs,files) in os.walk(path):
for dir in dirs:
print("next dir:",path+dir)
Parse_Directory_Tree((path + dir +'/'),filetype,a,b)
if(len(files) == 1):
file_nodes_mass = readfile((path+files[0]),filetype)
else:
for file in files:
print("looking at file: ",file)
if(filetype in file):
if(a in file):
file_nodes_mass = readfile((path+'/' +file),filetype)
continue
else:
print("not here")
continue
else:
continue
РЕДАКТИРОВАТЬ: я сделал одно изменение. Прежде чем вернуться к Parse_Directory_Tree, я назначил пути новый путь. Это помогло, но не помогло полностью решить проблему.
1 ответ
Просто отбросьте рекурсию. os.walk
проходит через все дерево каталогов для вас. Если вы действительно настаиваете на проведении рекурсии, проверьте os.listdir
перечислить один каталог (не рекурсивно) вместе с os.path.isdir
а также os.path.isfile
определить, что такое папка и что такое файл.