如何循环一个文件夹,并在另一个具有相同结构的文件夹中重新创建它们?

How to loop over a folder, and recreate them in another folder with same structure?

我想处理一个文件夹并模糊图像并在另一个文件夹中重新创建它们,同时保留结构。

我的源文件夹结构如下

Data/
   test1/
      test2/
         6.png
      4.png
      5.jpeg
   1.jpg/
   2.jpg
   3.jpeg

我想对所有这些图像进行模糊处理并将它们保存在另一个文件夹中

src = 'C:\Users\shakhansho\Downloads\Data' #folder with images
dst = 'C:\Users\shakhansho\Downloads\Output' #folder for output

假设我有一个函数,它获取图像路径然后应用模糊,然后将其保存在同一目录中blur(path_to_img)

如何遍历 src 文件,模糊处理,然后保存在 dst 文件夹中并保留 structure.I 希望 dst 文件夹包含相同的文件夹名称和图像名称但模糊不清。

我建议为此使用 glob.glob(或 glob.iglob)。它可以递归地查找目录下的所有文件。然后,我们可以简单地以某种方式打开图像,对其进行转换,找到输出文件和文件夹,可选择创建该文件夹,然后写出转换后的图像。该代码包含注释以稍微详细说明这些步骤。

import glob
import os

# Recursively find all files under Data/
for filepath in glob.iglob("Data/**/*.*", recursive=True):
    # Ignore non images
    if not filepath.endswith((".png", ".jpg", ".jpeg")):
        continue

    # Open your image and perform your transformation
    # to get the blurred image
    with open(filepath, "r") as f:
        image = f.read()
        blurred = transform(image)
    
    # Get the output file and folder path
    output_filepath = filepath.replace("Data", "Output")
    output_dir = os.path.dirname(output_filepath)
    # Ensure the folder exists
    os.makedirs(output_dir, exist_ok=True)

    # Write your blurred output files
    with open(output_filepath, "w") as f:
        f.write(blurred)

我重新创建了您的文件结构,我的程序能够 re-create 确切的文件结构,但在 Output 下。