Python pathlib make directories if they don’t exist
Python pathlib make directories if they don’t exist
Yes, that is Path.mkdir
:
pathlib.Path(/tmp/sub1/sub2).mkdir(parents=True, exist_ok=True)
From the docs:
If parents is true, any missing parents of this path are created as
needed; they are created with the default permissions without taking
mode into account (mimicking the POSIXmkdir -p
command).If parents is false (the default), a missing parent raises
FileNotFoundError
.If exist_ok is false (the default),
FileExistsError
is raised if the
target directory already exists.If exist_ok is true,
FileExistsError
exceptions will be ignored (same
behavior as the POSIXmkdir -p
command), but only if the last path
component is not an existing non-directory file.
This gives additional control for the case that the path is already there:
path = Path.cwd() / new / hi / there
try:
path.mkdir(parents=True, exist_ok=False)
except FileExistsError:
print(Folder is already there)
else:
print(Folder was created)
Python pathlib make directories if they don’t exist
Adding to Wims answer. If your path has a file on the end that you do not want made as a directory.
ie.
/existing_dir/not_existing_dir/another_dir/a_file
Then you use PurePath.parents. But the nice thing is that because Paths inherit the attributes of Pure Paths, then you can simply do
filepath = /existing_dir/not_existing_dir/another_dir/a_file
pathlib.Path(filepath).parents[0].mkdir(parents=True, exist_ok=True)