请对以上代码进行修改,使其能够满足对文件夹中所有目录进行多次复制,并不要对代码本身有过多改动,输出修改结果。
时间: 2024-09-10 21:04:48 浏览: 23
如果你想在现有代码基础上增加对文件夹中所有子目录及其内容的递归复制,你可以使用Python的os和shutil模块。这里假设原始代码主要是遍历目录并复制单个文件。我们可以添加一个函数来处理子目录,然后在主循环中调用这个新函数。
```python
import os
import shutil
def copy_folder(src_dir, dst_dir):
if not os.path.exists(dst_dir):
os.makedirs(dst_dir)
for item in os.listdir(src_dir):
src_item = os.path.join(src_dir, item)
dst_item = os.path.join(dst_dir, item)
# 如果是文件,则直接复制
if os.path.isfile(src_item):
shutil.copy2(src_item, dst_item)
# 如果是目录,则递归复制
elif os.path.isdir(src_item):
copy_folder(src_item, dst_item)
# 原始代码中的遍历部分
for file in files_to_copy:
src_file = os.path.join(root_directory, file)
dst_file = os.path.join(destination_directory, file)
shutil.copy2(src_file, dst_file) # 修改这里,将单独的文件复制改为整体调用copy_folder
# 现在添加对子目录的支持
for subdir in os.listdir(root_directory): # 新增这部分
subsrc_dir = os.path.join(root_directory, subdir)
if os.path.isdir(subsrc_dir): # 只处理目录
copy_folder(subsrc_dir, os.path.join(destination_directory, subdir))
```
上述代码首先检查目标路径是否存在,如果不存在则创建。然后对于列表中的每个元素,如果是文件就直接复制,如果是目录则递归调用`copy_folder`函数。这样就实现了对文件夹及其所有子目录内容的复制。