]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue19643 Add an example of shutil.rmtree which shows how to cope with readonly...
authorTim Golden <mail@timgolden.me.uk>
Wed, 7 May 2014 17:05:45 +0000 (18:05 +0100)
committerTim Golden <mail@timgolden.me.uk>
Wed, 7 May 2014 17:05:45 +0000 (18:05 +0100)
Doc/library/shutil.rst

index e4f348cd82ce9ed7a7535cc10243c7ceb22fb4ea..eb81c7d48c32476abd0762f8f00cfe0ab02eaaee 100644 (file)
@@ -421,6 +421,26 @@ Another example that uses the *ignore* argument to add a logging call::
    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