IT *_*nja 40 python shutil python-2.7
我已经阅读了这个函数的文档,但是,我不认为我理解它.如果有人能告诉我我错过了什么,或者我是否正确,那将是一个很大的帮助.这是我的理解:
使用该shutil.rmtree(path)函数,它将只删除指定的目录,而不是整个路径.IE:
shutil.rmtree('user/tester/noob')
使用这个,它只会删除'noob'目录正确吗?不是完整的路径?
kra*_*ase 26
这肯定只会删除指定路径中的最后一个目录.试试吧:
mkdir -p foo/bar
python
import shutil
shutil.rmtree('foo/bar')
Run Code Online (Sandbox Code Playgroud)
......只会删除'bar'.
cla*_*cke 16
这里有一些误解.
想象一下这样的树:
- user
- tester
- noob
- developer
- guru
Run Code Online (Sandbox Code Playgroud)
如果你想删除user,就这样做shutil.rmtree('user').这也将删除user/tester,user/tester/noob因为它们在里面user.然而,它也将删除user/developer和user/developer/guru,因为他们也在里面user.
如果rmtree('user/tester/noob')将删除user和tester,你的意思是user/developer,如果将存在user没有了吗?
或者你的意思是http://docs.python.org/2/library/os.html#os.removedirs?
它尝试删除每个已删除目录的父级,直到它失败,因为该目录不为空.所以在我的示例树中,os.removedirs('user/tester/noob')首先删除noob,然后它会尝试删除tester,这是好的,因为它是空的,但它会停在user并且不管它,因为它包含developer,我们不想删除.