2017-09-05 3967 views
2

我在運行此測試程序時創建以下錯誤。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爲空!

+0

需要更多信息。什麼是測試程序的代碼?從輸出Fromm看來,在嘗試創建一個已經存在的文件時,對某個File IO API的調用會引發此錯誤。需要查看代碼以獲取更多信息。 – Soumya

+0

@讓FrançoisFabre字符串前的'r'藉此 – Milk

+0

@Milk的護理:真實。我的眼睛遲遲不能工作得很好:)對OP很好。如果我有一個美元,當有人爲此而... –

回答

1

「當文件已存在無法創建文件」是被混淆,因爲它是目錄或普通文件一樣通用的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)

+0

謝謝。它是正確的。我認爲它會在文件夾內創建。但它也創建了文件夾本身 –

相關問題