Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python shutil.copytree失败,文件存在错误:[WinError 183]无法在文件已存在时创建该文件_Python_Windows_Filesystems - Fatal编程技术网

Python shutil.copytree失败,文件存在错误:[WinError 183]无法在文件已存在时创建该文件

Python shutil.copytree失败,文件存在错误:[WinError 183]无法在文件已存在时创建该文件,python,windows,filesystems,Python,Windows,Filesystems,我在Windows上有以下简单的Python脚本: import os.path import shutil src = os.path.join("..", "_build") dst = "_build" print("Copying {} to {}".format(src, dst)) if not os.path.exists(dst): shutil.copytree(src, dst) print("Copied {} to {}".format(src, dst

我在Windows上有以下简单的Python脚本:

import os.path
import shutil

src = os.path.join("..", "_build")
dst = "_build"
print("Copying {} to {}".format(src, dst))
if not os.path.exists(dst):
    shutil.copytree(src, dst)
    print("Copied {} to {}".format(src, dst))
else:
    print("{} already exists".format(dst))
当我运行时,会出现以下错误:

>python copytreetest.py
Copying ..\_build to _build
Traceback (most recent call last):
  File "copytreetest.py", line 9, in <module>
    shutil.copytree(src, dst)
  File "C:\Program Files\Python36\lib\shutil.py", line 315, in copytree
    os.makedirs(dst)
  File "C:\Program Files\Python36\lib\os.py", line 220, in makedirs
    mkdir(name, mode)
FileExistsError: [WinError 183] Cannot create a file when that file already exists: '_build'
这到底是怎么回事?为什么Windows在一个实例(在exists调用期间)中表示目标不存在,而在另一个实例(在mkdir调用期间)中表示目标确实存在。我在这里会遇到哪些Windows bug?我正在运行Windows Server 2016版本1607


EDIT:我发现错误是因为我在该生成目录中打开了一个终端。我想可能存在冲突,您可以删除终端打开的目录,但不能创建另一个同名目录(即使它似乎不存在)。这显然令人困惑,因此我将把这个问题留在这里,以防任何人遇到相同的问题。

进程有其工作目录的句柄,但它应该在不删除共享的情况下打开。由于共享冲突,删除此目录的尝试应失败。如果不是,那就是操作系统中的一个bug。你能重现这个问题吗?
>python copytreetest.py
Copying ..\_build to _build2
Copied ..\_build to _build2