我已经尝试了好几天,并在网上搜索解决方案,但我只发现了与我类似的问题,这对我没有帮助。到目前为止,我最好的办法是复制整个结构及其中的所有文件。但我只需要复制 .txt 和 .bmp 文件。
对于我的示例,我有一个 ChrisO 文件夹,其中有一个源文件夹以及包含文件的子文件夹。通过运行代码,我需要创建具有相同子文件夹的目标文件夹,其中包含所有 .txt 和 bmp。文件
import os
import shutil
import glob
src= "S:\ChrisO\source"
dest= "S:\ChrisO\destination"
shutil.copytree(src, dest)
我目前可以运行代码来尝试一下,但我认为这可以工作:
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)