需求是这样:有两个目录dir1和dir2,均为多级目录,dir1有很多文件,而dir2只有类似dir1的目录结构,为空目录,现需要将dir1中所有文件复制到dir2对应的目录中,若dir2无dir1对应的子目录,则dir1该子目录文件不需要复制。
递归函数即调用自己的函数,有两个条件:
- 在每次调用自己的时候更接近完成
- 有结束条件
# 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)