Python 删除文件夹

在 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”。整个项目结构如下图所示。

Python 删除文件夹的项目结构 1

示例 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” 这个文件夹被删除了,此时项目结果如下图所示。

Python os.rmdir() 删除文件夹

使用 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”。整个项目结构如下图所示。

Python 删除文件夹的项目结构 2

示例 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” 不会被删除。

Python os.removedirs() 删除文件夹

上一篇: Python 创建文件夹

下一篇: Python 读取 CSV

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号