Python 使用 \ 而不是 /

问题描述 投票: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个回答
2
投票

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

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

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

copy

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

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

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

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

你在哪里看到混合了

/
\
字符的路径名?

调试

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

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

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

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

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

shutil.copyfile(源,目标)

print("我想复制",source,"到",destination)

然后重新运行,看看什么被移动到了哪里。


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

天哪!他们是怎么到那里的?

D:/$RECYCLE.BIN\红色

打开桌面上的回收站。 “红色”文件夹或任何图像在那里吗?也许按“删除日期”排序?

如果D:/不是你的电脑主盘,进入“我的电脑”,打开“D:”,看看有没有“$RECYCLE.BIN”。您可能需要打开显示隐藏文件和文件夹的选项:

  • 在文件资源管理器中,选择“查看”>“选项”>“更改文件夹和搜索选项”。
  • 选择“查看”选项卡,然后在“高级设置”中选择“显示隐藏的文件、文件夹和驱动器”,然后选择“确定”。

(我仍然对如何混合正斜杠和反斜杠感到困惑,但至少它们没有完全消失。)

找到它们后,将它们拖到another drive.

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