This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Title: Add a recurse flag to Path.rmdir()
Type: enhancement Stage: resolved
Components: Library (Lib) Versions: Python 3.10, Python 3.9, Python 3.8
Status: closed Resolution: duplicate
Dependencies: Superseder: pathlib.Path wants an rmtree method
View: 33498
Assigned To: Nosy List: Charles Machalow, serhiy.storchaka
Priority: normal Keywords:

Created on 2020-06-14 04:28 by Charles Machalow, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (2)
msg371487 - (view) Author: Charles Machalow (Charles Machalow) Date: 2020-06-14 04:28
I think it would make sense to add a recurse flag to the Path.rmdir() method. It would default to False (to allow for current behavior). If set to True, the method would act very similarly to shutil.rmtree() in that it would delete all files in the directory and then delete the directory itself.

I understand that this behavior doesn't really line up with os.rmdir(), though I think it makes sense to allow this type of method to appear on the Path object for easy deletion of a directory with things still inside (while looking more object-oriented at the same time)

If people think this makes sense, I may be able to provide a PR to just delegate to shutil.rmtree for the recurse=True operation.

Thanks for thoughts.
msg371494 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2020-06-14 07:02
This is virtually a duplicate of issue33498.

shutil.rmtree() is very complex function. It is not trivial task to remove directories and files recursively in safe and efficient way. It needs also a way to customize errors handling. We do not want to duplicate all this code in pathlib if shutil.rmtree() already supports path-like objects.
Date User Action Args
2022-04-11 14:59:32adminsetgithub: 85144
2020-06-14 07:02:15serhiy.storchakasetstatus: open -> closed

superseder: pathlib.Path wants an rmtree method

nosy: + serhiy.storchaka
messages: + msg371494
resolution: duplicate
stage: resolved
2020-06-14 04:28:24Charles Machalowcreate