L
Lawrence D'Oliveiro
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
<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