在python中优化深度优先搜索 - 多处理

时间:2015-10-14 15:54:00

标签: python multiprocessing python-multithreading depth-first-search

我有一个目录,通过它可以使用下面的函数递归遍历。

for _item in _depth_first_traverse(start_folder):
    yield _item

def _depth_first_traverse(folderobj):
    #listcontents is method of folderobj class which return folder or file obj at immediate first level
    for _item in folderobj.listContents():
        yield _item
        # If the item is folder do recursive listing inside that folder
        if _item.isFolder:
            try:
                for _depth_item in _depth_first_traverse(_item):
                    yield _depth_item
            except Exception as e:
                pass
    return

上面的函数工作正常,它产生文件或文件夹obj。但是,当目录包含大量文件和文件夹时,计算速度非常慢。

因此,我想重构代码,要么使用多处理模块并行执行每个文件夹的递归列表。需要知道如何实现这个或任何其他解决方案,以使这个块快速执行是值得欢迎的。

0 个答案:

没有答案