【发布时间】:2018-09-15 06:41:44
【问题描述】:
我正在尝试将整个目录复制到新创建的目录。运行此程序时,它会正确执行所有操作,并且我可以看到实际上确实会从源文件夹中复制所有内容。但是,它仍然会返回 [WinError 183] - 尽管文件不存在,但无法创建已经存在的文件。不知道我做错了什么。
编辑:检查后是在错误发生之前复制所有内容-每个文件,每个文件夹,所以不确定出了什么问题
import os
import shutil
#Directory Definitions
root_dir = "C:\\Users\\Gabe Weiner\\Desktop\\GMImport" #os.getcwd()
source_dir = root_dir + "\source"
target_dir = root_dir + "\\target"
#Target Duplicate
for root, dirs, files in os.walk(str(target_dir)):
shutil.copytree(root, root_dir + "\\Backup")
【问题讨论】:
-
复制前在备份目录上尝试
os.path.exists,看看它是否存在 -
不会改变任何东西,当
shutil.copytree()启动时目录不存在,但在其运行过程中的某个时刻(似乎在结束时?)它会遇到该错误 -
您总是将当前目录
root复制到同一目录root_dir,因此在第一次执行循环后,您最终会遇到那个精确的错误,文档对此很清楚:docs.python.org/3/library/shutil.html#shutil.copytree -
如果我理解错了,请原谅我(刚刚开始学习 python),但循环似乎已经运行了不止一次,因为它似乎已经复制了所有内容?运行此之后,我的“备份”文件夹应包含所有 13 个文件夹 + 一个文件,但在此之后出现错误。如果我误解了某些东西,我该怎么做才能解决这个问题以仍然复制目录?
标签: python operating-system shutil