首页 > 解决方案 > 复制具有指定扩展名的文件并保留文件夹树结构

问题描述

我已经(在互联网的大力帮助下)编写了一个脚本,旨在将具有指定扩展名的文件从destiantion文件夹(和所有子文件夹)复制到新文件夹。

我已经部分完成了,但我有一个问题。

我的脚本正在复制文件,但只需将它们粘贴到作为目标的文件夹中,而不保留文件夹树结构。

我这样做的功能:

def copy_files_spec_ext(ext, file_path, root_path, dest_path):
ext_counter=0
ext="."+ext;
for root_path, dnames, fnames in os.walk(root_path):    
    for crt_file in fnames:
        if crt_file.endswith(ext):
            source_file_path =  os.path.join(root_path, crt_file)
            dest_file_path   =  os.path.join(dest_path, crt_file)
            shutil.copyfile(source_file_path, dest_file_path)
            ext_counter=ext_counter+1;
return ext_counter;

该代码是对我在这里找到的内容的修改

我是python的新手(几个月的非密集编码),所以请怜悯;-)。提前感谢您的帮助。

PS。抱歉英语不好。

标签: pythonpython-3.xpython-3.8

解决方案


您忘记在目标中添加源的目录路径:

source_file_path = os.path.join(root_path, crt_file)
dest_file_path   = os.path.join(dest_path, root_path ,crt_file)

推荐阅读