复制包含自身的目录

时间:2019-04-21 15:35:03

标签: python-3.x copy shutil copytree

沙洛姆,

我的脚本假装执行以下操作:

  1. 获取源(= src)和目标(= dst)文件夹作为输入。
  2. 将整个src目录和子目录复制到dst中。

我已经解决了覆盖问题,即src和dst中都存在一个文件/目录。

现在,我唯一的问题是src文件夹被复制而没有自身。

例如:

  

src =“ D:/ Apple / 21042019 /..."

     

dst =“ C:/ Apple /

执行脚本时,在目标位置得到以下内容:

  

“ C:/ Apple / ...”

尽管我理想的状态是:

  

“ C:/ Apple / 21042019 /...”

请参阅下面的附加代码

有什么建议吗?

def copytree(self, src, dst, symlinks=False, ignore=None):
        root_src_dir = src
        root_dst_dir = dst

        for src_dir, dirs, files in os.walk(root_src_dir):
            dst_dir = src_dir.replace(root_src_dir, root_dst_dir, 1)
            if not os.path.exists(dst_dir):
                os.makedirs(dst_dir)
            for file_ in files:
                src_file = os.path.join(src_dir, file_)
                dst_file = os.path.join(dst_dir, file_)
                if os.path.exists(dst_file):
                    # in case of the src and dst are the same file
                    if os.path.samefile(src_file, dst_file):
                        continue
                    os.remove(dst_file)
                shutil.move(src_file, dst_dir)

0 个答案:

没有答案