shutil.rmtree(path, ignore_errors=False, onerror=None)
Delete an entire directory tree; path must point to a directory (but not a symbolic link to a directory). If ignore_errors is true, errors resulting from failed removals will be ignored; if false or omitted, such errors are handled by calling a handler specified by onerror or, if that is omitted, they raise an exception.
Note
On platforms that support the necessary fd-based functions a symlink attack resistant version of rmtree()
is used by default. On other platforms, the rmtree()
implementation is susceptible to a symlink attack: given proper timing and circumstances, attackers can manipulate symlinks on the filesystem to delete files they wouldn’t be able to access otherwise. Applications can use the rmtree.avoids_symlink_attacks
function attribute to determine which case applies.
If onerror is provided, it must be a callable that accepts three parameters: function, path, and excinfo.
The first parameter, function, is the function which raised the exception; it depends on the platform and implementation. The second parameter, path, will be the path name passed to function. The third parameter, excinfo, will be the exception information returned by sys.exc_info()
. Exceptions raised by onerror will not be caught.
Changed in version 3.3: Added a symlink attack resistant version that is used automatically if platform supports fd-based functions.
-
rmtree.avoids_symlink_attacks
-
Indicates whether the current platform and implementation provides a symlink attack resistant version of
rmtree()
. Currently this is only true for platforms supporting fd-based directory access functions.New in version 3.3.
Please login to continue.