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

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

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

【问题讨论】:

    标签: python file


    【解决方案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 指定的处理程序,或者,如果 这被省略了,他们提出了一个 例外。

      【讨论】:

        猜你喜欢
        • 2013-08-05
        • 2012-05-31
        • 2016-10-16
        • 2010-12-11
        • 1970-01-01
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多