我已经阅读了这个函数的文档,但是,我想我没有正确地理解它。如果有人能告诉我我遗漏了什么,或者如果我是正确的,那将是一个很大的帮助。以下是我的理解:
使用shutil.rmtree(path)函数,它将只删除指定的目录,而不是整个路径。即:
shutil.rmtree('user/tester/noob')
使用这个,它只会删除'noob‘目录,对吗?不是完整的路径?
发布于 2012-06-04 04:01:00
如果noob是一个目录,shutil.rmtree()函数将删除noob及其下的所有文件和子目录。也就是说,noob是要删除的树的根。
发布于 2012-06-04 03:58:47
这肯定只会删除指定路径中的最后一个目录。试试看吧:
mkdir -p foo/bar
python
import shutil
shutil.rmtree('foo/bar')...will仅删除'bar'。
发布于 2013-11-11 17:31:25
这里有一些误解。
想象一下这样一棵树:
- user
- tester
- noob
- developer
- guru如果您想删除user,只需执行shutil.rmtree('user')即可。这还将删除user/tester和user/tester/noob,因为它们在user中。但是,它也会删除user/developer和user/developer/guru,因为它们也在user中。
如果rmtree('user/tester/noob')会删除user和tester,如果user消失了,你的意思是user/developer还会存在吗?
或者你指的是像http://docs.python.org/2/library/os.html#os.removedirs这样的东西?
它会尝试删除每个已删除目录的父目录,直到因为该目录不为空而失败。因此,在我的示例树中,os.removedirs('user/tester/noob')将首先删除noob,然后尝试删除tester,这是可以的,因为它是空的,但它会停在user处,不管它,因为它包含我们不想删除的developer。
https://stackoverflow.com/questions/10873364
复制相似问题