我使用shutil.move()
功能将一些重要文件移至所需目录。该目录不存在,因此我将其命名为shutil.move()
函数的参数。执行后,它将文件移动到一个目录中(我看不到该目录,当看到属性时它说它是一个“文件”),但无法打开。您能帮我打开此文件以提取文件吗?代码是这样的:
for file in Path("C/Users/Mahum/Downloads").glob(*.exe):
shutil.move(file, "E/New Folder")
使用零退出代码执行的代码,但是我遇到了问题.....
我认为您误解了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到达此目的地的列表文件的内容,所有其他文件和内容都将丢失。
您的路径应为C:/Users/Mahum/Downloads
,而不是C/Users/Mahum/Downloads
如果您在移动文件之前未创建新文件夹,则可能会将请求视为文件并相互覆盖。可能发生的另一件事只是忽略了每个文件的顶部。如果没有备份,则可能丢失了文件。您可以尝试使用磁盘恢复程序进行恢复。寻找一个操作系统。