是否有相当于“rm -rf”的python? [复制]
Posted
技术标签:
【中文标题】是否有相当于“rm -rf”的python? [复制]【英文标题】:Is there a python equivalent of "rm -rf"? [duplicate] 【发布时间】:2013-07-07 18:28:18 【问题描述】:如果已经存在,我想删除一个文件夹,关于如何删除一个目录(如果它存在)的任何输入?是否有一个相当于“rm -rf”的python?
如果 os.path.isdir('./.repo'): shutil.rmtree('./.repo')
【问题讨论】:
这个可能是:docs.python.org/2/library/shutil.html#shutil.rmtree,或者这个:***.com/q/185936/65387 当然,只要让 Python 执行 shell 命令。您可以使用os.system("rm -rf")
,也可以使用subprocess
模块。
@jdero 投票结束。
@2rs2ts 这与操作系统无关
-1:谷歌你的确切问题标题并点击前100个链接中的任何一个。
【参考方案1】:
您可以使用shutil.rmtree
shutil.rmtree(路径[, ignore_errors[, onerror]])
删除整个 目录树;路径必须指向一个目录(但不是符号 链接到目录)。如果 ignore_errors 为真,则错误导致 失败的删除将被忽略;如果为 false 或省略,则此类错误为 通过调用由 onerror 指定的处理程序来处理,或者,如果是 省略,它们会引发异常。
如果提供了 onerror,它必须是一个可调用的,接受三个 参数:函数、路径和 excinfo。第一个参数, function,是引发异常的函数;这将是 os.path.islink()、os.listdir()、os.remove() 或 os.rmdir()。第二 参数 path 将是传递给函数的路径名。第三 参数 excinfo 将是返回的异常信息 sys.exc_info()。不会捕获由 onerror 引发的异常。
在 2.6 版中更改:显式检查路径是否为符号 在这种情况下链接并引发 OSError。
注意: rm -fr path 并不严格等同于 shutil.rmtree("path", ignore_errors = True)。 rm -fr 将删除只读文件, rmtree 不会。 (见下面@Richard 的评论)
【讨论】:
在你发布之前我发布了这是一个骗局,但是你得到 60 分,我得到一个有用的标志......这里有趣的点系统:P,考虑到这是所选内容的近直接副本我的链接线程的答案。 @jdero:这个问题只有一个简单的答案,所以我不确定它应该是什么样子。 哎呀,我为非常错误的答案保留了反对票。作为记录,直到我发布此信息后,我才点击进入骗子。除了链接之外,现在不鼓励仅提供答案。 注意:rm -fr path 并不严格等同于 shutil.rmtree("path", ignore_errors = True)。 rm -fr 将删除只读文件, rmtree 不会。我在 Windows 10 python 2.7.15 上找到了这个 谢谢理查德。我已将您的注释添加到我的答案中以上是关于是否有相当于“rm -rf”的python? [复制]的主要内容,如果未能解决你的问题,请参考以下文章