美文网首页
当递归(recursion)遇到yield

当递归(recursion)遇到yield

作者: Rokkia | 来源:发表于2018-07-23 17:57 被阅读86次
    def copy_files(path, dis_path):
        files = os.listdir(path)
        for file in files:
            if os.path.isdir(os.path.join(path, file)):
                os.mkdir(os.path.join(dis_path, file))
                #这里实现递归 但是需要在递归函数前 + yield from
                yield from copy_files(os.path.join(path, file), os.path.join(dis_path, file))
            else:
                name, ext = os.path.splitext(file)
                if ext != '.webp':
                    ma = re.match(r'.*_big$', name)
                    if ma:
                        shutil.copy(os.path.join(path, file), os.path.join(dis_path, file))
                        #这里使用真正的yield
                        yield '{}       to      {}'.format(os.path.join(path, file), os.path.join(dis_path, file))
    
    

    相关文章

      网友评论

          本文标题:当递归(recursion)遇到yield

          本文链接:https://www.haomeiwen.com/subject/sldmrftx.html