(代码如下)
使用 jupyter notebook,我创建了一个 python 代码,它将带有关键字的文件从一个目录复制到脚本中创建的新目录(即文件保存在:D:/Main_Folder/SubFolder1/SubFolder2,新目录将是D:/Main_Folder/SubFolder1/SubFolder2/NewFolder).
我使用 filedialog.askdirectory() 获取原始文件的目录,新目录将在该目录中创建。 Python 做错了并创建了如下新目录:
D:/Main_Folder/SubFolder1/SubFolder2\NewFolder
基本上创建了新文件夹,但改用反斜杠。有什么办法可以恢复文件吗?我使用了 shutil.copy 文件,所以我不完全确定为什么它们会从原始文件夹中删除。
拜托拜托有人成为我的英雄并帮助我!
import os import shutil from tkinter import Tk from tkinter import filedialog root = Tk() root.withdraw()
folder_path = filedialog.askdirectory() new_directory = os.path.join(folder_path, 'Red') if not os.path.exists(new_directory): os.makedirs(new_directory)
keyword = 'Red_'
for root_folder, _, filenames in os.walk(folder_path): for filename in filenames: if keyword in filename and filename.endswith(".tif"): source = os.path.join(root_folder, filename) destination_folder_name = os.path.basename(os.path.dirname(source)) destination_folder = os.path.join(new_directory, destination_folder_name) if not os.path.exists(destination_folder): os.makedirs(destination_folder) destination = os.path.join(destination_folder, filename) shutil.copyfile(source, destination) print("Files copied to new folder!")
所以我不完全确定为什么它们会从原始文件夹中删除
这不可能是这段代码的结果,因为正如您所说,您已经使用了
copy
。
你已经很好地使用了正确的方法,例如
os.path.join
来连接路径的组件,而不是懒惰地只是 +"/"+
,这是我在使用 Python 之前所做的。
您没有手动输入任何斜杠。你已经从合法的方法中读取出来,并使用合法的方法将它们组合起来。
你在哪里看到混合了
/
和\
字符的路径名?
你确定他们事先在那里吗?
你能在整个目录树中搜索这些文件吗?
您手动将它们删除到回收站中的任何更改?
或将它们拖到另一个驱动器或子文件夹中?
如果上述方法失败,请尝试将(任何其他)TIF 文件引入该位置,然后修改代码并重新运行。改变
shutil.copyfile(源,目标)
到
print("I want to copy ",source," to ",destination)
我真的很同情你,因为我自己也曾误删重要文件。但在这种情况下,我认为你展示的代码无法完成。