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