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

如何复制目录结构并仅保留指定扩展名的文件?

仅复制指定格式文件并保留目录结构的解决方案

原代码使用shutil.copytree()会完整复制所有文件和目录,要实现只保留.txt和.bmp文件且维持目录结构,可以通过遍历源目录、创建对应目标目录、筛选指定格式文件复制的方式实现,代码如下:

import os
import shutil

# 使用原始字符串避免路径转义问题
src = r"S:\ChrisO\source"
dest = r"S:\ChrisO\destination"

# 遍历源目录的所有层级
for root, dirs, files in os.walk(src):
    # 计算当前目录在目标路径中的对应位置
    target_dir = root.replace(src, dest)
    # 如果目标目录不存在则创建
    if not os.path.exists(target_dir):
        os.makedirs(target_dir)
    
    # 筛选出.txt和.bmp格式的文件
    for file in files:
        if file.endswith(('.txt', '.bmp')):
            src_file = os.path.join(root, file)
            dest_file = os.path.join(target_dir, file)
            # 复制文件到目标目录(保留文件元数据)
            shutil.copy2(src_file, dest_file)

关键说明:

  • os.walk()会遍历源目录的所有子层级,确保完整复刻原目录结构
  • 通过字符串替换生成对应目标目录路径,保证层级一致
  • 用endswith()批量筛选指定格式文件,可按需添加其他扩展名
  • shutil.copy2()相比基础复制方法,会保留文件修改时间等元数据

内容的提问来源于stack exchange,提问作者Strider90

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 08:35:55