迫切需要帮助 python 使用 \ insted of /

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

(代码如下)

使用 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!")
python path shutil filedialog
1个回答
1
投票

我看得出你很恐慌,因为你的original文件不见了

所以我不完全确定为什么它们会从原始文件夹中删除

这不可能是这段代码的结果,因为正如您所说,您已经使用了

copy

很难看出你怎么会得到斜线的随机方向

你已经很好地使用了正确的方法,例如

os.path.join
来连接路径的组件,而不是懒惰地只是
+"/"+
,这是我在使用 Python 之前所做的。

您没有手动输入任何斜杠。你已经从合法的方法中读取出来,并使用合法的方法将它们组合起来。

你在哪里看到混合了

/
\
字符的路径名?

调试

  • 你确定他们事先在那里吗?

  • 你能在整个目录树中搜索这些文件吗?

  • 您手动将它们删除到回收站中的任何更改?

  • 或将它们拖到另一个驱动器或子文件夹中?

  • 如果上述方法失败,请尝试将(任何其他)TIF 文件引入该位置,然后修改代码并重新运行。改变

    shutil.copyfile(源,目标)

print("I want to copy ",source," to ",destination)

我真的很同情你,因为我自己也曾误删重要文件。但在这种情况下,我认为你展示的代码无法完成。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.