在 Python 中,删除文件夹可以使用以下 os 模块的 2 个函数来实现。
- os.rmdir() 函数。
- os.removedirs() 函数。
提示: 在计算机中,“文件夹” 和 “目录” 指的是同一个东西。
使用 os.rmdir() 删除文件夹
在 Python 中,我们可以使用 os 模块 的 rmdir() 函数来删除文件夹。
语法:
os.rmdir(path)说明:
参数 path 是文件夹的完整路径(包含文件名),它可以是相对路径,也可以是绝对路径。更多关于路径的信息,请查看 Python 文件路径。
对于 os.rmdir(),小伙伴们要清楚以下 2 点。
- 如果指定 path 不存在(可能是文件夹不存在,或中间级目录不存在),那么 os.rmdir() 会引发 FileNotFoundError 异常。
- 如果指定 path 包含多级中间级目录,os.rmdir() 并不会删除这些中间级目录,而是只会删除文件夹就了事了。
注意: os.rmdir() 只能删除空的文件夹!如果要删除的文件夹里面包含有文件或其他非空子文件夹,程序会直接报错(抛出 OSError)。
首先在当前项目目录下有一个 test.py,它用于运行 Python 程序。接着创建一个名为 “AAA” 文件夹,然后再在 “AAA” 中创建子文件夹 “BBB”,最后在 “BBB” 中创建子文件夹 “CCC”。整个项目结构如下图所示。

示例 1:os.rmdir() 删除文件夹
import os
# 指定要删除的文件夹路径
folder_path = 'AAA/BBB/CCC'
try:
os.rmdir(folder_path)
print('删除成功!')
except FileNotFoundError:
print('路径不存在!')
except Exception as e:
print('发生错误:', str(e))分析:
上面程序运行之后,可以发现 “CCC” 这个文件夹被删除了,此时项目结果如下图所示。

使用 os.rmdir() 函数删除文件夹时,如果文件夹不存在,则会抛出 FileNotFoundError 异常。我们可以使用 try except 语句来处理异常。
使用 os.removedirs() 删除文件夹
在 Python 中,我们还可以使用 os 模块的 removedirs() 函数来删除文件夹。
语法:
os.removedirs(path)说明:
参数 path 是文件夹的完整路径(包含文件名),它可以是相对路径,也可以是绝对路径。
对于 os.removedirs(),小伙伴们要清楚以下 2 点。
- 如果指定 path 不存在(可能是文件夹不存在,或中间级目录不存在),那么 os.removedirs() 同样会引发 FileNotFoundError 异常。
- 如果指定 path 包含中间级目录,os.rmdir() 会递归删除 “不存在其他子目录的中间目录”。如果中间目录包含其他子目录,则不会被删除。
注意: os.rmdir() 和 os.removedirs() 这 2 个函数的语法几乎是一样的,它们之间的区别在于:如果中间目录不存在,os.rmdir() 会直接报错,而 os.removedirs() 会递归删除。
接下来重塑一下当前项目的目录结构。“AAA” 文件夹中有 2 个子文件夹:“BBB1” 和 “BBB2”,其中 “BBB1” 下面还有一个子文件夹 “CCC”。整个项目结构如下图所示。

示例 2:os.removedirs() 删除文件夹
import os
# 指定要删除的文件夹路径
folder_path = 'AAA/BBB1/CCC'
try:
os.removedirs(folder_path)
print('删除成功!')
except FileNotFoundError:
print('路径不存在!')
except Exception as e:
print('发生错误:', str(e))分析:
运行之后,项目结构如下图所示。可以看到,不仅 “CCC” 被删除了,而且 “BBB1” 也被删除了。之所以 “AAA” 没有被删除,这是因为 “AAA” 还包含其他子目录(即 “BBB1”)。因此 “AAA” 不会被删除。

