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异常。
本文链接:http://bookshadow.com/weblog/2014/10/02/python-mkdir-p/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。