如何复制目录结构以及特定的文件扩展名?

问题描述 投票:0回答:1

我已经尝试了好几天,并在网上搜索解决方案,但我只发现了与我类似的问题,这对我没有帮助。到目前为止,我最好的办法是复制整个结构及其中的所有文件。但我只需要复制 .txt 和 .bmp 文件。

对于我的示例,我有一个 ChrisO 文件夹,其中有一个源文件夹以及包含文件的子文件夹。通过运行代码,我需要创建具有相同子文件夹的目标文件夹,其中包含所有 .txt 和 bmp。文件

import os
import shutil
import glob

src= "S:\ChrisO\source"

dest= "S:\ChrisO\destination"

shutil.copytree(src, dest)
python shutil copytree
1个回答
0
投票

我目前可以运行代码来尝试一下,但我认为这可以工作:

import os
import shutil
import glob

src_dir = "S:/ChrisO/source"
dest_dir = "S:/ChrisO/destination"
file_extensions = ["txt", "bmp"]

def copy_files_with_extensions(src, dest, extensions):
    for extension in extensions:
        src_files = glob.glob(os.path.join(src, "**", f"*.{extension}"), recursive=True)
        for src_file in src_files:
            dest_file = os.path.join(dest, os.path.relpath(src_file, src))
            os.makedirs(os.path.dirname(dest_file), exist_ok=True)
            shutil.copy(src_file, dest_file)


copy_files_with_extensions(src_dir, dest_dir, file_extensions)
© www.soinside.com 2019 - 2024. All rights reserved.