递归列表目录 - 生成器

时间:2018-05-28 09:41:12

标签: python python-3.x recursion generator

我想创建在生成器上列出递归路径的方法(所以我不必等待输出,如果是大目录)。我创建的代码在文件层次结构中深入,但是没有回来:(我在这里做错了什么?

e.g:

- /

-- a

--- aa

---- aaa

---- aab

--- ab

-- b

代码就像,a, aa, aaa, aab - 我遗失了aabb等等

注意:

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)

1 个答案:

答案 0 :(得分:0)

我在行for path in self.list(rel_path=rel_path):中发现了错误。它应该是for path in list(self.list(rel_path=rel_path)):,因为它只是在第一个目录中,而列表并没有包含所有其他目录。 List包含该目录中的完整文件列表,因此for循环可以返回给它们。