Python-移动和覆盖文件和文件夹
我有一个目录“ 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目录,并在需要时覆盖/合并。 希望对某些人有所帮助!
希望有道理,谢谢!
6个解决方案
51 votes
这将遍历源目录,创建目标目录中尚不存在的任何目录,并将文件从源移动到目标目录:
import os
import shutil
root_src_dir = 'Src Directory\\'
root_dst_dir = '