[英]Shutil.move() function moved files into a folder which i cant open
我使用shutil.move()
函數將一些重要文件移動到所需目錄中。 該目錄不存在,所以我將名稱作為參數指定給我的shutil.move()
函數。 執行后,它將文件移動到我無法打開的目錄中(這似乎不是目錄,當看到屬性時,它說它是“文件”)。 你能幫我打開這個文件來提取我的文件嗎?? 代碼是這樣的:
for file in Path("C/Users/Mahum/Downloads").glob(*.exe):
shutil.move(file, "E/New Folder")
使用零退出代碼執行的代碼但我遇到了那個問題.....
我認為您誤解了 Shutil 可以做什么。
如果目標是一個目錄,那么它會將源文件移動到
那個目錄。
但是,如果目標不存在,它會將 src 重命名為
目的地。
如果目標確實存在並且它是一個文件,它將用源文件覆蓋該目標文件。
所以在你的情況下,假設你有 5 個文件。 “E/新文件夾”不存在。 所以在文件循環上
file1 重命名為 E/New Folder(此時 file1 不存在,其內容在 E/New Folder 中)
file2 覆蓋 E/New Folder(file2 被刪除,E/New Folder 現在有 file2 的內容,file1 的內容現在完全丟失)
file3 覆蓋 E/New Folder(file3 被刪除,E/New Folder 現在有 file3 的內容,file2 的內容現在完全丟失)
file4 覆蓋 E/New Folder(file4 被刪除,E/New Folder 現在有 file4 的內容,file3 的內容現在完全丟失)
file5 覆蓋 E/New Folder(file5 被刪除,E/New Folder 現在有 file5 的內容,file4 的內容現在完全丟失)
所以很有可能 E/New Folder 確實是一個文件,它將保存通過 shutil.move 到此目的地的列表文件的內容,並且所有其他文件和內容都將丟失。
你的路徑應該是C:/Users/Mahum/Downloads
而不是C/Users/Mahum/Downloads
如果您在移動文件之前沒有創建新文件夾,它可能會將請求視為文件並相互覆蓋。 可能發生的另一件事只是覆蓋在每個文件之上。 如果您沒有備份,您可能已經丟失了文件。 您可以嘗試使用磁盤恢復程序進行恢復。 為操作系統尋找一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.