我正在编写一个递归函数来搜索一个简短的目录结构。发生的事情是它正确检查每个文件夹,然后它再次打开每个文件夹!我不确定为什么会这样做。有什么建议? (注意:最初,“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之前,我分配了路径新路径。这有助于但不能完全解决问题。
答案 0 :(得分:0)
删除实际的递归。 os.walk
为您整理目录树。如果你真的坚持做递归,请检查os.listdir
以列出单个目录(非递归)以及os.path.isdir
和os.path.isfile
来确定什么是文件夹以及什么是文件。