百科快讯 迷你百科

一个文件夹批量复制到多个文件夹

2023-07-11 16:50:19

  要实现一个文件夹的批量复制到多个文件夹的功能,可以使用以下步骤:

  1. 确定源文件夹的路径和目标文件夹的路径。假设源文件夹路径为`source_folder`,目标文件夹路径为`target_folder`。可以使用绝对路径或者相对路径。

  2. 遍历源文件夹中的所有文件和子文件夹。可以使用递归方式来遍历,对于每个文件和子文件夹,都需要复制到目标文件夹中。

  3. 判断当前遍历到的对象是文件还是文件夹。如果是文件,直接将该文件复制到目标文件夹中。

  4. 如果是文件夹,需要在目标文件夹中创建一个同名的文件夹。然后将文件夹内的所有文件和子文件夹复制到目标文件夹中。

  5. 递归地调用自身,将当前文件夹的所有子文件夹也复制到目标文件夹中。这样可以保证源文件夹中的所有文件和子文件夹都能被复制到目标文件夹中。

  下面是一个示例的Python代码实现:

  ```python

  import os

  import shutil

  def copy_folder(source_folder, target_folder):

   # 判断源文件夹是否存在

   if not os.path.exists(source_folder):

   print("Source folder does not exist.")

   return

  

   # 创建目标文件夹

   if not os.path.exists(target_folder):

   os.makedirs(target_folder)

  

   # 遍历源文件夹的所有文件和子文件夹

   for item in os.listdir(source_folder):

   item_path = os.path.join(source_folder, item)

   target_path = os.path.join(target_folder, item)

  

   if os.path.isfile(item_path):

   # 复制文件到目标文件夹中

   shutil.copy2(item_path, target_folder)

   print("Copied file: ", item_path)

   elif os.path.isdir(item_path):

   # 在目标文件夹中创建同名文件夹

   new_target_folder = os.path.join(target_folder, item)

   if not os.path.exists(new_target_folder):

   os.makedirs(new_target_folder)

  

   # 递归复制文件夹中的文件和子文件夹

   copy_folder(item_path, new_target_folder)

   print("Copied folder: ", item_path)

  # 使用示例

  source_folder = "path/to/source/folder"

  target_folder = "path/to/target/folder"

  copy_folder(source_folder, target_folder)

  ```

  在上面的代码中,`shutil.copy2()`函数用于复制文件,`os.makedirs()`函数用于递归地创建目标文件夹。运行代码后,程序会将源文件夹中的所有文件和子文件夹复制到目标文件夹中。

相关信息

猜你喜欢