Mkdir -p functionality in python
Is there a way to get functionality similar to mkdir -p
on the shell from within Python. I'm looking for a solution other than the call of the system If the code is short than 20 lines then i'm wondering if anybody has already written it?
Best Answer
For Python ≥ 3.5, use pathlib.Path.mkdir
.
import pathlib
pathlib.Path("/tmp/path/to/desired/directory").mkdir(parents=True, exist_ok=True)
The exist_ok
parameter was added in Python 3.5.
For Python ≥ 3.2, os.makedirs
has an optional third argument exist_ok
that, when True
, enables the mkdir -p
functionality— unless mode
is provided and the existing directory has different permissions than the intended ones; in that case, OSError
is raised as previously.
import os
os.makedirs("/tmp/path/to/desired/directory", exist_ok=True)
For even older versions of Python you can use os.makedirs
and ignore the error.
import errno
import os
def mkdir_p(path):
try:
os.makedirs(path)
except OSError as exc: # Python ≥ 2.5
if exc.errno == errno.EEXIST and os.path.isdir(path):
pass
# possibly handle other errno cases here, otherwise finally:
else:
raise