如何通过遍历文件夹名称列表复制存在的目标文件夹?
优化复制替换文件夹的Python实现
完全可以通过定义文件夹名称列表并遍历的方式实现需求,这样既能避免重复代码,又能灵活控制要复制的文件夹,还能自动跳过源目录中不存在的项。
优化后的代码实现
import os import shutil def copy_and_replace(directory): # 定义需要处理的文件夹列表,新增/修改只需调整这里 FOLDERS_TO_COPY = ['src', 'public', 'specs', 'assets'] for folder in FOLDERS_TO_COPY: source = os.path.join('..', 'source', directory, folder) target = os.path.join('workspace', directory, folder) # 先检查源文件夹是否存在,不存在则跳过 if not os.path.isdir(source): print(f"Source folder not found, skipping: {source}") continue try: # 目标存在则删除 if os.path.isdir(target): shutil.rmtree(target) print(f"Removed existing directory: {target}") # 复制文件夹 shutil.copytree(source, target) print(f"Copied directory successfully: {target}") except OSError as o: print(f"Error handling {folder} in {directory}: {o.strerror}")
关键优化点
- 代码复用:通过遍历列表,把重复的复制/替换逻辑统一到循环里,避免重复编写相同代码
- 灵活可控:后续要新增或移除文件夹,只需修改
FOLDERS_TO_COPY列表,无需改动核心逻辑 - 存在性检查:先判断源文件夹是否存在,不存在直接跳过,避免无效操作和不必要的错误
- 精准错误提示:异常信息会明确指出是哪个文件夹出了问题,方便排查
内容的提问来源于stack exchange,提问作者user3142695
相关产品推荐
相关产品推荐

