我想创建在生成器上列出递归路径的方法(所以我不必等待输出,如果是大目录)。我创建的代码在文件层次结构中深入,但是没有回来:(我在这里做错了什么?
e.g:
- /
-- a
--- aa
---- aaa
---- aab
--- ab
-- b
代码就像,a, aa, aaa, aab
- 我遗失了aab
和b
等等
注意:
1)代码没有准备好,因此命名不合适,我会解决当代码按预期工作时
2)方法self.list
也是一个生成器,列出远程svn中的目录,并生成路径
def list_recursive(self, excluded_paths=[], rel_path=''):
print('rel_path: '+rel_path)
for path in self.list(rel_path=rel_path):
yield path
a = rel_path + path
print('\ta: ' + a)
if a.endswith('/'):
print('\ta: ' + a)
for aaa in self.list_recursive(rel_path=a):
yield(aaa)
答案 0 :(得分:0)
我在行for path in self.list(rel_path=rel_path):
中发现了错误。它应该是for path in list(self.list(rel_path=rel_path)):
,因为它只是在第一个目录中,而列表并没有包含所有其他目录。 List包含该目录中的完整文件列表,因此for循环可以返回给它们。