我有一个目录,通过它可以使用下面的函数递归遍历。
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。但是,当目录包含大量文件和文件夹时,计算速度非常慢。
因此,我想重构代码,要么使用多处理模块并行执行每个文件夹的递归列表。需要知道如何实现这个或任何其他解决方案,以使这个块快速执行是值得欢迎的。