只要子目录名称匹配,就可以将文件从一个目录和子目录复制到另一个目录

时间:2017-10-12 16:35:46

标签: python python-2.7

我在python中工作相当新,我正在从Excel改为python,所以我的参考点往往是excel。我正在使用python 2.7。我理解如何复制文件,以及如何遍历文件夹将我需要的所有文件复制到特定目的地。然而,我想做的事情有点复杂。

这是设置: 2个目录:2017年和2018年

中有300多个文件夹

我正在尝试做什么: 将文件(shapefile,.csv等)从目录2017中的单个文件夹复制到目录2018中的同名文件夹(如果它存在,可能不存在,也没关系)。

我知道我需要一个for循环,一个if语句,我只是不知道怎么写它: 如果2017和2018目录中都存在'x'文件夹,请将文件'y_2017'从2017年的'x'文件夹复制到2018年的文件夹'x'。

我确信我以一种糟糕的方式和相当复杂的方式描述了这一点。如果有人有任何建议,我会很感激。

1 个答案:

答案 0 :(得分:0)

import os
import shutil

source_folder = "2017"
target_folder = "2018"
subfolders = [a for a in os.listdir(source_folder) if os.path.isdir(os.path.join(source_folder, a))]

for subfolder in subfolders:
    if os.path.exists(os.path.join(target_folder, subfolder) and os.path.isdir(os.path.join(target_folder, subfolder)):
        file_names = os.listdir(os.path.join(source_folder, subfolder))
        for f in file_names:
            src_path = os.path.join(source_folder, subfolder, f)
            tgt_path = os.path.join(target_folder, subfolder, f)
            shutil.copy(src_path, tgt_path)