Python:用包含相同文件的另一个目录覆盖一个目录
我试图用包含相同文件的另一个目录覆盖一个目录。 我尝试过使用 distutils.dir_util.copy_tree(src, dst) 但它尝试为 dst 创建一个目录。 目标是静默覆盖目录及其内容。 还有其他方法吗?
I'm trying to overwrite a directory with another directory that contains the same files.
I've tried using distutils.dir_util.copy_tree(src, dst) but it tried to make a directory for dst instead.
The objective is to overwrite the directory and its contents silently.
Is there any other way to do so?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
编辑:这个繁琐的内容显然是没有必要的;查看OP的答案以了解原因。
您可能需要首先将目标目录重命名为其他目录。如果没问题,则将源目录复制到目标目录的原始名称。然后,如果有效,请从新位置删除目标目录。
您应该首先创建一个临时目录,使用
tempfile 将目标目录移动到其中.mkdtemp
。Edit: This rigamarole is apparently not necessary; see the OP's answer for the reason.
You'll probably want to first rename the destination directory to something else. If that goes okay, then copy the source directory to the original name of the destination directory. Then, if that worked, delete the destination directory from its new location.
You should first create a temporary directory into which to move the destination directory using
tempfile.mkdtemp
.哎呀...事实证明
distutils.dir_util.copy_tree(src, dst)
有效。只是我从环境变量中获取了目录路径,而“\n”卡在了路径的后面。
在我的路径变量中添加
.strip()
解决了问题。oops... Turns out that
distutils.dir_util.copy_tree(src, dst)
works.It's just that I got my directory path from environment variables and '\n' was stuck at the back of my path.
Adding in a
.strip()
to my path variable solved the problem.