mkdir为Linux操作系统中的创建目录命令,使用mkdir -p指令可以自动创建目标目录路径中尚不存在的上级目录(Windows操作系统也有同名的指令,用法稍有差别)。

Java的创建目录有mkdir和mkdirs两个方法,其中:

mkdir() :只能在已经存在的目录中创建创建文件夹。
mkdirs() :可以在不存在的目录中创建文件夹。

与Java类似,Python的os模块也存在两个函数,分别为mkdir和makedirs,其中

mkdir( path [,mode] ):创建一个目录,可以是相对或者绝对路径,mode的默认模式是0777。如果目录有多级,则创建最后一级。如果最后一级目录的上级目录有不存在的,则会抛出一个OSError。
makedirs( path [,mode] ):创建递归的目录树,可以是相对或者绝对路径,mode的默认模式是0777。如果子目录创建失败或者已经存在,会抛出一个OSError的异常,Windows上Error 183即为目录已经存在的异常错误。如果path只有一级,与mkdir相同。

对于Python 2.X(X > 2.5)版本,使用Python模拟实现Linux下的mkdir -p指令功能的代码如下:

import os, errno

def mkdir_p(path):
    try:
        os.makedirs(path)
    except OSError as exc: # Python >2.5 (except OSError, exc: for Python <2.5)
        if exc.errno == errno.EEXIST and os.path.isdir(path):
            pass
        else: raise

而对于Python 3.X(X >= 2)版本,os.makedirs 函数还有第三个参数 exist_ok,该参数为真时执行mkdir -p,但如果给出了mode参数,目标目录已经存在并且与即将创建的目录权限不一致时,会抛出OSError异常。

文档更新时间: 2019-06-14 13:43   作者:月影鹏鹏