在 python 中使用 shutil.copytree() 的问题

Posted

技术标签:

【中文标题】在 python 中使用 shutil.copytree() 的问题【英文标题】:Problems using shutil.copytree() in python 【发布时间】:2020-12-19 01:14:45 【问题描述】:

我试图在我的 python 程序中使用 shutil.copytree(libEntity,newDir) 并且我收到以下错误: FileExistsError:[WinError 183] 当文件已存在时无法创建文件:'C:\Users\newDir

基本上它抱怨目标目录 newDir 已经存在。

我认为这就是使用 shutil.copytree 的目的吗?我在 Windows 10 上使用 Python 3.8.5

我也尝试了“distutils.dir_util.copy_tree(libEntity,newDir)”,但这不能正常工作。它从源目录复制所有文件,但不保留目标文件夹中的目录结构,而是创建目标文件夹 (newDir) 并将所有源文件放在目标文件夹中,而不创建目录树。这没有帮助。

有什么建议吗?

谢谢。

【问题讨论】:

建议具体做什么? copytree 的文档说“目标目录必须不存在。”此刻是什么?一个空目录? 很好的教程,可以关注google.com/amp/s/www.geeksforgeeks.org/… 【参考方案1】:

有一个参数:dirs_exist_ok,默认为False。与 True 一起使用。

shutil.copytree(libEntity,newDir,dirs_exist_ok=True)

【讨论】:

当我添加 dir_exist_ok 部分时出现错误:TypeError: copy_tree() got an unexpected keyword argument 'dirs_exist_ok' 您可能使用的是 Python 3.7 或更早版本。从shutil.pyi 文件中,dirs_exist_ok 仅在if sys.version_info >= (3, 8) 中定义,即 Python 3.8 或更高版本。

以上是关于在 python 中使用 shutil.copytree() 的问题的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中使用 soffice,Command 在终端中有效,但在 Python 子进程中无效

python 使用pymongo在python中使用MongoDB的示例

在 python 中使用命令行时出现语法错误

python 在python中使用全局变量

如何在 Python 3.x 和 Python 2.x 中使用 pip

在Python中使用Redis