有奇葩复制文件的需求,写个脚本,复习了一下递归函数

需求是这样:有两个目录dir1和dir2,均为多级目录,dir1有很多文件,而dir2只有类似dir1的目录结构,为空目录,现需要将dir1中所有文件复制到dir2对应的目录中,若dir2无dir1对应的子目录,则dir1该子目录文件不需要复制。

递归函数即调用自己的函数,有两个条件:

  1. 在每次调用自己的时候更接近完成
  2. 有结束条件
# coding:utf-8
# python3
# written by *

import os
import shutil


ORIGIN_DIR = "C:\\Users\\admin\\Desktop\\目录1"
TARGET_DIR = "C:\\Users\\admin\\Desktop\\目录2"


def copy(origin_dir, target_dir):

    names = os.listdir(origin_dir)
    for name in names:
        full_path1 = os.path.join(origin_dir, name)
        full_path2 = os.path.join(target_dir, name)
        if os.path.isdir(full_path1):
            if os.path.exists(full_path2):
                copy(full_path1, full_path2)
        else:
            shutil.copy(full_path1, full_path2)


if __name__ == '__main__':
    copy(ORIGIN_DIR, TARGET_DIR)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章