擅长:python、mysql、java
<p>这里有些误会。</p>
<p>想象一下这样一棵树:</p>
<pre><code> - user
- tester
- noob
- developer
- guru
</code></pre>
<p>如果要删除<code>user</code>,只需执行<code>shutil.rmtree('user')</code>。这也将删除<code>user/tester</code>和<code>user/tester/noob</code>,因为它们在<code>user</code>中。但是,它也将删除<code>user/developer</code>和<code>user/developer/guru</code>,因为它们也在<code>user</code>内部。</p>
<p>如果<code>rmtree('user/tester/noob')</code>会删除<code>user</code>和<code>tester</code>,那么如果<code>user</code>消失了,你怎么说<code>user/developer</code>会存在?</p>
<hr/>
<p>或者你的意思是<a href="http://docs.python.org/2/library/os.html#os.removedirs" rel="noreferrer">http://docs.python.org/2/library/os.html#os.removedirs</a>?</p>
<p>它尝试删除每个已删除目录的父目录,直到失败,因为该目录不是空的。所以在我的示例树中,<code>os.removedirs('user/tester/noob')</code>将首先删除<code>noob</code>,然后它将尝试删除<code>tester</code>,这是可以的,因为它是空的,但是它将在<code>user</code>处停止,并将其单独保留,因为它包含<code>developer</code>,我们不想删除它。</p>