You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中实现Windows系统下文件夹内容的完整复制?

Windows系统下Python实现文件夹全内容复制

解决方案说明

用Python标准库os和shutil就能实现,无需额外安装依赖,可在任意Windows系统运行,支持复制所有文件(含隐藏文件)、子文件夹及文件元数据。

代码实现

import os
import shutil

def copy_all_contents(src_folder, dest_folder):
    # 确保目标文件夹存在,不存在则自动创建
    os.makedirs(dest_folder, exist_ok=True)
    
    # 遍历源文件夹内的所有文件和子文件夹
    for item in os.listdir(src_folder):
        src_path = os.path.join(src_folder, item)
        dest_path = os.path.join(dest_folder, item)
        
        try:
            if os.path.isdir(src_path):
                # 递归复制子文件夹,已存在则合并内容
                shutil.copytree(src_path, dest_path, dirs_exist_ok=True)
            else:
                # 复制单个文件,保留元数据,覆盖同名文件
                shutil.copy2(src_path, dest_path)
        except Exception as e:
            print(f"复制 {src_path} 失败: {str(e)}")

# 示例调用
if __name__ == "__main__":
    # 替换为实际的源文件夹和目标文件夹路径
    source_dir = r"C:\Example\Source"
    target_dir = r"C:\Example\Destination"
    copy_all_contents(source_dir, target_dir)
    print("内容复制完成")

关键细节说明

  • 路径处理:用原始字符串(r"路径")避免Windows路径中的反斜杠转义问题
  • 目标文件夹创建:os.makedirs(..., exist_ok=True)确保目标文件夹存在,不会因已存在报错
  • 文件夹复制:shutil.copytree的dirs_exist_ok=True参数(Python 3.8+支持)允许合并已存在的子文件夹内容
  • 文件复制:shutil.copy2会保留文件的创建时间、修改时间等元数据,比基础的shutil.copy更完整
  • 异常处理:捕获复制过程中的权限不足、文件占用等错误,保证程序稳定运行

可选调整

如果需要跳过已存在的文件/文件夹,可在复制前添加判断:

if os.path.exists(dest_path):
    print(f"{dest_path} 已存在,跳过")
    continue

内容的提问来源于stack exchange,提问作者Md Ashraful Islam Rahat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 19:45:37