我想删除一个文件夹,如果已经存在,有关如何删除目录的任何输入,如果它存在吗?是否有一个python等效的"rm -rf"?
如果os.path.isdir('./.repo'):shutil.rmtree('./.repo')
您可以使用shutil.rmtree
shutil.rmtree(path [,ignore_errors [,onerror]])
删除整个目录树; path必须指向目录(但不是指向目录的符号链接).如果ignore_errors为true,则将忽略由删除失败导致的错误; 如果为false或省略,则通过调用onerror指定的处理程序来处理此类错误,或者,如果省略,则会引发异常.
如果提供了onerror,则它必须是可调用的,它接受三个参数:function,path和excinfo.第一个参数function是引发异常的函数; 它将是os.path.islink(),os.listdir(),os.remove()或os.rmdir().第二个参数path是传递给function的路径名.第三个参数excinfo将是sys.exc_info()返回的异常信息.恐怖主义引发的例外情况不会被发现.
在2.6版中更改:显式检查路径是否为符号链接并在此情况下引发OSError.
注意: rm -fr path并不严格等同于shutil.rmtree("path",ignore_errors = True).rm -fr将删除只读文件,rmtree不会.(见@ Richard的评论如下)