Python复制文件到指定文件夹最常用的方法是使用shutil
模块,它提供了copy()
、copy2()
和copytree()
等函数,支持单个文件、批量文件及完整文件夹结构的复制,同时可保留文件元数据。对于特殊需求,也可结合os
模块或二进制读写实现灵活操作。
-
shutil
模块高效复制shutil.copy(src, dst)
:将单个文件复制到目标文件夹,保留文件权限但忽略元数据。shutil.copy2(src, dst)
:在复制文件的同时保留元数据(如修改时间)。shutil.copytree(src, dst)
:递归复制整个文件夹结构,包括子目录和文件。
-
os
模块的底层控制
通过os.listdir()
遍历文件,结合os.path.join()
拼接路径,再使用open()
和文件读写操作实现手动复制。此方法适合需要自定义复制逻辑的场景,例如筛选特定文件类型。 -
二进制文件与特殊处理
对图片、视频等二进制文件,需以'rb'
和'wb'
模式读写,避免编码错误。示例:python复制
with open('source.jpg', 'rb') as src, open('target.jpg', 'wb') as dst: dst.write(src.read())
-
异常处理与路径管理
使用try-except
捕获权限错误或路径异常,并通过os.makedirs(dst, exist_ok=True)
自动创建目标文件夹,提升代码健壮性。
提示:优先选择shutil
模块简化代码,复杂场景可结合os
和pathlib
。批量操作时注意内存占用,大文件建议分块读写。