<p>最好的方法是使用<a href="https://docs.python.org/3/library/os.html#os.makedirs" rel="nofollow noreferrer">os.mkdirs</a>,比如</p>
<blockquote>
<p><strong>os.makedirs(name, mode=0o777, exist_ok=False)</strong></p>
<p>Recursive directory creation function. Like mkdir(), but makes a intermediate-level directories needed to contain the leaf directory.</p>
<p>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.</p>
</blockquote>
<pre><code>>>> os.mkdirs(path, exist_ok=True)
# which will not raise an error if the `path` already exists
# and it will recursive create the paths, if the preceding path doesn't exist
</code></pre>
<p>或者如果你在<code>python3</code>,使用<a href="https://docs.python.org/3/library/pathlib.html#pathlib.Path.mkdir" rel="nofollow noreferrer">pathlib</a>like</p>
<blockquote>
<p><strong>Path.mkdir(mode=0o777, parents=False, exist_ok=False)</strong></p>
<p>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.</p>
<p>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).</p>
<p>If parents is false (the default), a missing parent raises <code>FileNotFoundError</code>. > If exist_ok is false (the default), <code>FileExistsError</code> is raised if the target directory already exists.</p>
<p>If <code>exist_ok</code> is true, <code>FileExistsError</code> exceptions will be ignored (same behavior as the POSIX <code>mkdir -p command</code>), but only if the last
path component is not an existing non-directory file.</p>
<p><strong>Changed in version 3.5: The exist_ok parameter was added.</strong></p>
</blockquote>
<pre><code>>>> path = pathlib.Path(somepath)
>>> path.mkdir(parents=True, exist_ok=True)
</code></pre>