語法:
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False,dirs_exist_ok=False)
將以 src 為根起點的整個目錄樹拷貝到名為 dst 的目錄並返回目標目錄。dirs_exist_ok 指明是否要在 dst 或任何丟失的父目錄已存在的情況下引發異常。
目錄的權限和時間會通過copystat() 來拷貝,單個文件則會使用copy2() 來拷貝。
如果 symlinks 為真值,源目錄樹中的符號鏈接會在新目錄樹中表示為符號鏈接,並且原鏈接的元數據 在平台允許的情況下也會被拷貝;如果為假值或省略,則會將被鏈接文件的內容和元數據拷貝到新目 錄樹。
當 symlinks 為假值時,如果符號鏈接所指向的文件不存在,則會在拷貝進程的末尾將一個異常添加 到Error 異常中的錯誤列表。如果你希望屏蔽此異常那就將可選的 ignore_dangling_symlinks 旗標設為 真值。請注意此選項在不支持os.symlink() 的平台上將不起作用。
如果給出了 ignore,它必須是一個可調用對象,該對象將接受copytree() 所訪問的目錄以及os. listdir() 所返回的目錄內容列表作為其參數。由於copytree() 是遞歸地被調用的,ignore可調用 對象對於每個被拷貝目錄都將被調用一次。該可調用對象必須返回一個相對於當前目錄的目錄和文件 名序列(即其第二個參數的子集);隨后這些名稱將在拷貝進程中被忽略。ignore_patterns() 可 被用於創建這種基於glob風格模式來忽略特定名稱的可調用對象。
如果發生了(一個或多個)異常,將引發一個附帶原因列表的Error。
如果給出了copy_function,它必須是一個將被用來拷貝每個文件的可調用對象。它在被調用時會將源路 徑和目標路徑作為參數傳入。默認情況下,copy2() 將被使用,但任何支持同樣簽名(與copy() 一 致)都可以使用。