有一个python相当于“rm -rf”?

时间:2013-07-09 23:56:04

标签: python

我想删除一个文件夹,如果已经存在,有关如何删除目录的任何输入,如果它存在吗?是否有一个等效于“rm -rf”的python?

如果是os.path.isdir('。/。repo'):     shutil.rmtree( './。回购')

1 个答案:

答案 0 :(得分:6)

您可以使用shutil.rmtree

  

shutil.rmtree(path [,ignore_errors [,onerror]])

     

删除整个   目录树; path必须指向一个目录(但不是一个符号   链接到目录)。如果ignore_errors为true,则会产生错误   失败的删除将被忽略;如果错误或省略,则此类错误   通过调用onerror指定的处理程序来处理,如果是的话   省略,他们提出异常。

     

如果提供了onerror,它必须是可接受三个的可调用   参数:function,path和excinfo。第一个参数,   函数,是引发异常的函数;这将是   os.path.islink(),os.listdir(),os.remove()或os.rmdir()。第二   参数,path,将是传递给函数的路径名。第三   参数,excinfo,将是返回的异常信息   sys.exc_info()。由恐怖主义引起的例外情况不会被发现。

     

在2.6版中更改:明确检查路径是否为符号   在这种情况下链接并引发OSError。

注意: rm -fr path与shutil.rmtree(“path”,ignore_errors = True)不完全相同。 rm -fr将删除只读文件,rmtree不会。 (见@ Richard在下面的评论)