Completely Deleting A Directory
MrJean1
mrjean1 at gmail.com
Mon Apr 26 12:30:32 EDT 2010
The answer to 1) is no, due to topdown = False in the call to os.walk.
/Jean
On Apr 26, 8:31 am, MrJean1 <mrje... at gmail.com> wrote:
> Two comments:
>
> 1) Should delete_dir not be called instead of os.rmdir in this line
>
> (os.rmdir, os.remove)[os.path.islink(item)](item)
>
> 2) Function rmtree in the shutil module considers symlinks to a
> directory an error <http://docs.python.org/library/shutil.html#module-
> shutil> since Python 2.6.
>
> /Jean
>
> On Apr 26, 2:09 am, Lawrence D'Oliveiro <l... at geek-
>
>
>
> central.gen.new_zealand> wrote:
> > It doesn’t seem to mention in the documentation for os.walk
> > <http://docs.python.org/library/os.html> that symlinks to directories are
> > returned in the list of directories, not the list of files. This will lead
> > to an error in the os.rmdir call in the example directory-deletion routine
> > on that page.
>
> > This version fixes that problem.
>
> > def delete_dir(dir) :
> > """deletes dir and all its contents."""
> > if os.path.isdir(dir) :
> > for parent, dirs, files in os.walk(dir, topdown = False) :
> > for item in files :
> > os.remove(os.path.join(parent, item))
> > #end for
> > for item in dirs :
> > item = os.path.join(parent, item)
> > (os.rmdir, os.remove)[os.path.islink(item)](item)
> > #end for
> > #end for
> > os.rmdir(dir)
> > #end if
> > #end delete_dir
More information about the Python-list
mailing list