Is there any way to remove a directory and it’s contents in the PathLib module? With path.unlink()
it only removes a file, with path.rmdir()
the directory has to be empty. Is there no way to do it in one function call?
As you already know, the only two Path
methods for removing files/directories are .unlink()
and .rmdir()
and both doesn't do what you wanted.
Pathlib is a module to that provides object oriented paths across different OS's, it isn't meant to have lots of diverse methods.
The aim of this library is to provide a simple hierarchy of classes to handle filesystem paths and the common operations users do over them.
The "uncommon" file system alterations, such as recursively removing a directory, is stored in different modules. If you want to recursively remove a directory, you should use the shutil
module. (It works with Path
instances too!)
import shutil
import pathlib
import os # for checking results
print(os.listdir())
# ["a_directory", "foo.py", ...]
path = pathlib.Path("a_directory")
shutil.rmtree(path)
print(os.listdir())
# ["foo.py", ...]