有奇葩複製文件的需求,寫個腳本,複習了一下遞歸函數

需求是這樣:有兩個目錄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)


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