请描述如何在 Python 中完成文件复制与移动,具体说明实现方式及注意事项。
考察说明
考察候选人对 Python 文件操作基础知识的掌握,包括复制、移动的方法及注意事项。
回答思路
- 【回答框架 1】文件复制:常用 shutil.copy() 或 shutil.copy2(),前者复制内容及权限,后者还复制元数据。也可用 open() 以二进制模式读写,但需要手动处理异常和资源关闭。
- 【回答框架 2】文件移动:shutil.move() 可跨文件系统移动,它优先尝试 os.rename(),若失败则执行复制并删除源文件。
- 【回答框架 3】注意事项:操作前检查文件是否存在,处理权限和磁盘空间不足,使用 try-except 捕获异常,大文件时考虑分块读写以减少内存占用。
- 【关键点 1】shutil.copy() 和 shutil.copy2() 是复制文件的推荐方法,后者保留元数据。
- 【关键点 2】shutil.move() 用于移动文件,可跨设备,内部处理复制与删除。
- 【关键点 3】使用 os.rename() 仅限同一文件系统内,失败会抛出异常。
- 【关键点 4】需注意文件路径、权限和异常处理。
- 【易错点 1】直接使用 os.rename() 可能因跨文件系统失败而抛出异常,应先检查 os.path.exists 或使用 shutil.move()。
- 【易错点 2】手动打开文件复制时忘记关闭资源会导致文件句柄泄漏,应使用 with 语句。
- 【易错点 3】复制大文件时若一次性读取全部内容到内存,可能导致内存不足,应使用分块读写。