在Python中复制整个文件夹,推荐使用shutil
模块的copytree()
函数,该函数支持递归复制文件夹及其内容。以下是具体方法及示例代码:
一、推荐方法:使用shutil.copytree()
-
函数用法
shutil.copytree(src, dst)
:递归复制源目录src
到目标目录dst
,若目标目录不存在则自动创建。 -
示例代码
import shutil source_dir = 'path/to/source/folder' destination_dir = 'path/to/destination/folder' shutil.copytree(source_dir, destination_dir)
二、备选方法:使用os
模块手动复制
-
创建目标目录
使用
os.makedirs(target_dir, exist_ok=True)
创建目标目录(如果不存在)。 -
遍历源目录并复制文件/子目录
import os import shutil def copy_folder(src, dst): for item in os.listdir(src): src_path = os.path.join(src, item) dst_path = os.path.join(dst, item) if os.path.isdir(src_path): os.makedirs(dst_path, exist_ok=True) else: shutil.copy2(src_path, dst_path) copy_folder(source_dir, destination_dir)
三、注意事项
-
错误处理 :建议使用
try-except
块捕获可能的异常(如权限问题、路径错误等)。 -
符号链接处理 :
copytree()
默认会复制符号链接,若需特殊处理可参考其参数。
以上方法均可实现文件夹复制,推荐优先使用shutil.copytree()
,因其代码简洁且功能强大。