Python 中如何删除文件或文件夹?

Python 删除文件用 os.remove() 或 Path.unlink();删除空目录用 os.rmdir();递归删除整个目录树用 shutil.rmtree()。本文对比各方法及注意事项。

最佳实践
Python 中如何删除文件或文件夹?封面

删文件:os.remove(path)(或 Path(path).unlink());删空目录:os.rmdir(path);删非空目录及其全部内容:shutil.rmtree(path)。删除操作不可恢复,执行前务必确认路径。

删除文件

import os
os.remove("/path/to/file.txt")

# pathlib 风格
from pathlib import Path
Path("/path/to/file.txt").unlink()

文件不存在会抛 FileNotFoundError,可以 Path.unlink(missing_ok=True)(3.8+)忽略。

删除空目录

os.rmdir("/path/to/folder")
# 或
Path("/path/to/folder").rmdir()

目录非空会抛 OSError

递归删除整个目录树

import shutil
shutil.rmtree("/path/to/folder")

会连子目录和文件一起删掉,不可撤销,使用前建议打印路径确认。

各方法对比

方法 目标 非空时行为
os.remove() / Path.unlink() 文件、符号链接 不适用
os.rmdir() / Path.rmdir() 空目录 抛 OSError
shutil.rmtree() 任意目录树 全部删除

常见问题(FAQ)

Q:删除前想判断路径是文件还是目录?
A:用 os.path.isfile() / os.path.isdir() 或 pathlib 的 is_file() / is_dir()

Q:能删到回收站而不是彻底删除吗?
A:标准库不行,可以装第三方库 send2trash,它会把文件移到系统回收站,可恢复。

Q:删除时报 PermissionError?
A:通常是文件被其他进程占用(Windows 常见)或权限不足。先关闭占用文件的句柄,或检查运行权限。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台