【发布时间】:2011-11-17 04:38:19
【问题描述】:
我有一个目录,'Dst Directory',里面有文件和文件夹,我有'src Directory',里面也有文件和文件夹。我想要做的是将'src Directory'的内容移动到'Dst Directory'并覆盖任何同名的文件。因此,例如“Src Directory\file.txt”需要移动到“Dst Directory\”并覆盖现有的file.txt。这同样适用于某些文件夹,移动文件夹并将内容与 'dst directory' 中的同一文件夹合并
我目前正在使用 shutil.move 将 src 的内容移动到 dst 但如果文件已经存在并且不会合并文件夹,它将不会这样做;它只会将文件夹放在现有文件夹中。
更新:为了让事情更清楚一点,我正在做的是将存档解压缩到 Dst 目录,然后将 Src 目录的内容移动到那里并重新压缩,从而有效地更新 zip 存档中的文件。这将重复添加新文件或文件的新版本等,这就是它需要覆盖和合并的原因
已解决:我通过使用 distutils.dir_util.copy_tree(src, dst) 解决了我的问题,这会将文件夹和文件从 src 目录复制到 dst 目录,并在必要时覆盖/合并。希望对一些人有所帮助!
希望这是有道理的, 谢谢!
【问题讨论】:
-
请注意,
distutils.dir_util.copy_tree无法复制特殊文件,例如named pipes(抛出distutils.errors.DistutilsFileError)。
标签: python file move overwrite