我在运行此测试程序时创建以下错误。FileExistsError:[WinError 183]当该文件已存在时无法创建文件:
import shutil
src=r"G:\aaa"
dst=r"F:\zzz"
shutil.copytree(src,dst, symlinks=False, ignore=None)
FileExistsError:[WinError 183]当文件已存在无法创建文件:
但F的文件夹:\ zzz为空!
我在运行此测试程序时创建以下错误。FileExistsError:[WinError 183]当该文件已存在时无法创建文件:
import shutil
src=r"G:\aaa"
dst=r"F:\zzz"
shutil.copytree(src,dst, symlinks=False, ignore=None)
FileExistsError:[WinError 183]当文件已存在无法创建文件:
但F的文件夹:\ zzz为空!
“当文件已存在无法创建文件”是被混淆,因为它是目录或普通文件一样通用的Windows消息。 (Windows未对非常有帮助的错误消息知,你必须凑合用那个)从shutil.copytree
在线帮助
:
>>> help(shutil.copytree)
Help on function copytree in module shutil:
copytree(src, dst, symlinks=False, ignore=None, copy_function=, ignore_dangling_symlinks=False)
Recursively copy a directory tree.
The destination directory must not already exist.
所以第一次,它可能有效,但其他有时候你需要执行
shutil.rmtree(dst)
删除目标目录复制树之前(请注意,Windows是烦人的权限和具有只读属性的文件可以扼住shutil.rmtree
,我个人将代码复制到自定义版本中(在联机帮助中鼓励您这样做)在删除常规文件之前添加os.chmod(path,0o777)
。
谢谢。它是正确的。我认为它会在文件夹内创建。但它也创建了文件夹本身 –
需要更多信息。什么是测试程序的代码?从输出Fromm看来,在尝试创建一个已经存在的文件时,对某个File IO API的调用会引发此错误。需要查看代码以获取更多信息。 – Soumya
@让FrançoisFabre字符串前的'r'借此 – Milk
@Milk的护理:真实。我的眼睛迟迟不能工作得很好:)对OP很好。如果我有一个美元,当有人为此而... –