美文网首页
Python 如何强制删除非空文件夹?

Python 如何强制删除非空文件夹?

作者: 徐卜灵 | 来源:发表于2019-06-20 10:51 被阅读0次

    os.rmdir() 和 os.removedirs() 可以删除文件夹,但有个前提条件是文件夹是空的
    据博客所说:
    https://blog.csdn.net/T704379675/article/details/55026009

    原来,os.removedirs()遍历删除多个文件夹不假,但是,它适用的情景很特殊:
    他的工作方式像rmdir()一样,它删除多个文件夹的方式是通过在目录上由深及浅逐层调用rmdir()函数实现的,在确定最深的目录为空目录时(因为rmdir只能移除空目录),调用rmdir()函数,移除该目录,工作对象上移一层目录,如果上次的移除动作完毕后当前目录也变成了空目录,那么移除当前目录。重复此动作,直到遇到一个非空目录为止。

    废了一番周折之后,终于找到解决方案:

    import shutil
    shutil.rmtree(path, ignore_errors=True)
    

    shutil — High-level file operations

    高级的文件操作库
    不翻译了,自己看吧!

    shutil.rmtree(path, ignore_errors=False, onerror=None)

    Delete an entire directory tree; path must point to a directory (but not a symbolic link to a directory).
    If ignore_errors is true, errors resulting from failed removals will be ignored; if false or omitted, such errors are handled by calling a handler specified by onerror or, if that is omitted, they raise an exception.

    参考链接:
    1.https://blog.csdn.net/T704379675/article/details/55026009
    2.https://docs.python.org/3.7/library/shutil.html

    相关文章

      网友评论

          本文标题:Python 如何强制删除非空文件夹?

          本文链接:https://www.haomeiwen.com/subject/wbcdqctx.html