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

问题描述 投票:0回答:3

我使用shutil.move()功能将一些重要文件移至所需目录。该目录不存在,因此我将其命名为shutil.move()函数的参数。执行后,它将文件移动到一个目录中(我看不到该目录,当看到属性时它说它是一个“文件”),但无法打开。您能帮我打开此文件以提取文件吗?代码是这样的:

for file in Path("C/Users/Mahum/Downloads").glob(*.exe):
    shutil.move(file, "E/New Folder")

使用零退出代码执行的代码,但是我遇到了问题.....

python python-3.x shutil
3个回答
1
投票

我认为您误解了shutit可以做什么。

  • 如果目标是目录,它将把源文件移动到该目录。

  • 但是,如果目的地不存在,它将把src重命名为目的地。

  • 如果目的地确实存在,并且它是一个文件,它将覆盖目标文件和源文件。

因此,假设您有5个文件。 “ E /新文件夹”不存在。所以在文件循环中

file1被重命名为E / New文件夹(此时file1不存在,其内容在E / New文件夹中)

file2覆盖E / New文件夹(已删除file2,并且E / New文件夹现在具有file2的内容,并且file1的内容现在完全丢失了]

file3覆盖E / New文件夹(已删除file3,并且E / New文件夹现在具有file3的内容,而file2的内容现在完全丢失了]

file4覆盖E / New文件夹(已删除file4,并且E / New文件夹现在具有file4的内容,而file3的内容现在完全丢失了]

file5覆盖E / New文件夹(已删除file5,并且E / New文件夹现在具有file5的内容,而file4的内容现在完全丢失了]

因此,E / New Folder确实确实是一个文件,它将保存通过shutil.move到达此目的地的列表文件的内容,所有其他文件和内容都将丢失。


0
投票

您的路径应为C:/Users/Mahum/Downloads,而不是C/Users/Mahum/Downloads


0
投票

如果您在移动文件之前未创建新文件夹,则可能会将请求视为文件并相互覆盖。可能发生的另一件事只是忽略了每个文件的顶部。如果没有备份,则可能丢失了文件。您可以尝试使用磁盘恢复程序进行恢复。寻找一个操作系统。

© www.soinside.com 2019 - 2024. All rights reserved.