The best way would be to use os.makedirs like,
os.makedirs(name, mode=0o777, exist_ok=False)
Recursive directory creation function. Like mkdir(), but makes a intermediate-level directories needed to contain the leaf directory.
The mode parameter is passed to mkdir() for creating the leaf directory; see the mkdir() description for how it is interpreted. To set the file permission bits of any newly-created parent directories you can set the umask before invoking makedirs(). The file permission bits of existing parent directories are not changed.
>>> import os
>>> os.makedirs(path, exist_ok=True)
# which will not raise an error if the `path` already exists and it
# will recursively create the paths, if the preceding path doesn't exist
or if you are on python3
, using pathlib like,
Path.mkdir(mode=0o777, parents=False, exist_ok=False)
Create a new directory at this given path. If mode is given, it is combined with the process’ umask value to determine the file mode and access flags. If the path already exists, FileExistsError is raised.
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 POSIX mkdir -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 POSIX mkdir -p command
), but only if the last
path component is not an existing non-directory file.
Changed in version 3.5: The exist_ok parameter was added.
>>> import pathlib
>>> path = pathlib.Path(somepath)
>>> path.mkdir(parents=True, exist_ok=True)