我有一个目录“ Dst Directory”,其中包含文件和文件夹,而我有“ src Directory”,其中也包含文件和文件夹。我想要做的是将“ src目录”的内容移动到“ Dst目录”,并覆盖具有相同名称的所有文件。因此,例如需要将“ Src Directory \ file.txt”移至“ Dst Directory \”并覆盖现有的file.txt。对于某些文件夹,移动文件夹并将内容与“ dst目录”中的同一文件夹合并,也是如此
我当前正在使用shutil.move将src的内容移动到dst,但是如果文件已经存在并且不会合并文件夹,则不会这样做。它将只将该文件夹放在现有文件夹中。
更新:为了使事情更加清楚,我正在做的是将存档解压缩到Dst目录,然后将Src目录的内容移到那里并重新压缩,从而有效地更新了zip存档中的文件。添加新文件或文件的新版本等将重复此操作,这就是为什么它需要覆盖和合并的原因
已解决:我通过使用distutils.dir_util.copy_tree(src,dst)解决了我的问题,这会将文件夹和文件从src目录复制到dst目录,并在需要时覆盖/合并。希望对某些人有所帮助!
希望有道理,谢谢!
distutils.dir_util.copy_tree
它不能复制特殊文件,例如命名管道(throwsdistutils.errors.DistutilsFileError
)。