changeset: 90583:31d63ea5dffa user: Tim Golden date: Wed May 07 18:05:45 2014 +0100 files: Doc/library/shutil.rst description: Issue19643 Add an example of shutil.rmtree which shows how to cope with readonly files on Windows diff -r c0bcf1383d77 -r 31d63ea5dffa Doc/library/shutil.rst --- a/Doc/library/shutil.rst Wed May 07 13:08:51 2014 +0200 +++ b/Doc/library/shutil.rst Wed May 07 18:05:45 2014 +0100 @@ -421,6 +421,26 @@ copytree(source, destination, ignore=_logpath) +.. _shutil-rmtree-example: + +rmtree example +~~~~~~~~~~~~~~ + +This example shows how to remove a directory tree on Windows where some +of the files have their read-only bit set. It uses the onerror callback +to clear the readonly bit and reattempt the remove. Any subsequent failure +will propagate. :: + + import os, stat + import shutil + + def remove_readonly(func, path, _): + "Clear the readonly bit and reattempt the removal" + os.chmod(path, stat.S_IWRITE) + func(path) + + shutil.rmtree(directory, onerror=remove_readonly) + .. _archiving-operations: Archiving operations