在Python中删除文件主要通过标准库模块实现,os.remove()
是最常用方法,适用于单个文件删除且不可恢复;shutil.rmtree()
用于递归删除目录,而pathlib.Path.unlink()
提供面向对象的现代操作方式。关键点包括路径验证、异常处理和权限管理,确保操作安全可靠。
-
使用os模块
导入import os
后,os.remove('文件路径')
可直接删除文件,但需先用os.path.exists()
检查路径有效性。若文件不存在会触发FileNotFoundError
,权限不足则引发PermissionError
。os.unlink()
功能相同,常用于符号链接删除。 -
pathlib模块(Python 3.4+)
通过Path('文件路径').unlink()
删除文件,语法更直观。例如:python复制
from pathlib import Path Path('test.txt').unlink() if Path('test.txt').exists() else print('文件不存在')
适合需要路径组合或属性检查的场景。
-
批量删除与目录处理
- 批量文件:循环遍历文件列表,结合
os.remove()
或Path.unlink()
。 - 非空目录:使用
shutil.rmtree('目录路径')
递归删除,但需谨慎操作避免数据丢失。
- 批量文件:循环遍历文件列表,结合
-
异常处理与安全实践
始终用try-except
捕获异常(如FileNotFoundError
、PermissionError
),并建议:- 删除前备份重要数据
- 交互式确认(如
input('确认删除?')
) - 日志记录操作过程
-
跨平台注意事项
Windows系统需注意文件占用问题(如被其他程序打开),而Linux/Unix需检查执行权限。os.chmod()
可临时修改权限。
根据需求选择模块——简单操作用os
,现代项目用pathlib
,目录删除用shutil
。始终遵循“检查→备份→确认→删除”流程,并处理异常以提升代码健壮性。