繁体   English   中英

Shuutil.move() 函数将文件移动到我无法打开的文件夹中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM