python:删除非空目录[重复]

Posted

技术标签:

【中文标题】python:删除非空目录[重复]【英文标题】:python: delete non-empty dir [duplicate] 【发布时间】:2010-12-06 03:41:38 【问题描述】:

如何在 Python 中删除可能非空的目录。

该目录可能有许多层级的嵌套子目录。

【问题讨论】:

【参考方案1】:

使用shutil.rmtree:

import shutil

shutil.rmtree(path)

有关如何处理和/或忽略错误的详细信息,请参阅the documentation。

【讨论】:

【参考方案2】:

标准库为此包含shutil.rmtree。默认情况下,

shutil.rmtree(path)  # errors if dir not empty

会给OSError: [Errno 66] Directory not empty: <your/path>

您可以通过忽略错误来删除目录及其内容:

shutil.rmtree(role_fs_path, ignore_errors=True)

您还可以通过传递onerrror=<some function(function, path, excinfo)> 来执行更复杂的错误处理。

【讨论】:

ignore_errors=True 表示不删除目录。 ignore_errors=True 是票 哦不,参数的名字太糟糕了:( shutil.rmtree(path) 如果目录在 python 3.8 中为空,则不会给出错误,因此这可能自您 6 年前发布以来发生了变化。只是想为现在正在查看此内容的其他人更新。【参考方案3】:

你想要shutil.rmtree

shutil.rmtree(路径[, ignore_errors[, 错误]])

删除整个目录 树; path 必须指向一个目录 (但不是指向 目录)。如果 ignore_errors 为真, 删除失败导致的错误 将被忽略;如果为假或省略, 此类错误通过调用 onerror 指定的处理程序,或者,如果 这被省略了,他们提出了一个 例外。

【讨论】:

以上是关于python:删除非空目录[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在Python中删除父目录的名称[重复]

python常用模块

python核心模块方法

Python常用模块大全

Python无法识别目录os.path.isdir()[重复]

linux命令如何删除非空目录?