mkdir为Linux操作系统中的创建目录命令,使用mkdir -p指令可以自动创建目标目录路径中尚不存在的上级目录(Windows操作系统也有同名的指令,用法稍有差别)。
主要涉及到三个函数
1、os.path.exists(path) 判断一个目录是否存在
2、os.makedirs(path) 多层创建目录
3、os.mkdir(path) 创建目录
例子
代码如下 | 复制代码 |
def mkdir(path): # 引入模块 import os # 去除首位空格 path=path.strip() # 去除尾部 \ 符号 path=path.rstrip("\\") # 判断路径是否存在 # 存在 True # 不存在 False isExists=os.path.exists(path) # 判断结果 if not isExists: # 如果不存在则创建目录 print path+' 创建成功' # 创建目录操作函数 os.makedirs(path) return True else: # 如果目录存在则不创建,并提示目录已存在 print path+' 目录已存在' return False # 定义要创建的目录 mkpath="d:\\qttc\\web\\" # 调用函数 mkdir(mkpath) |
以上是我写好的一个函数,只需要传入你要创建目录的全路径即可。
说明
在以上DEMO的函数里,我并没有使用os.mkdir(path)函数,而是使用了多层创建目录函数os.makedirs(path)。这两个函数之间最大的区别是当父目录不存在的时候os.mkdir(path)不会创建,os.makedirs(path)则会创建父目录。
比如:例子中我要创建的目录web位于D盘的qttc目录下,然而我D盘下没有qttc父目录,如果使用os.mkdir(path)函数就会提示我目标路径不存在,但使用os.makedirs(path)会自动帮我创建父目录qttc,请在qttc目录下创建子目录web。
Java的创建目录有mkdir和mkdirs两个方法,其中:
对于Python 2.X(X > 2.5)版本,使用Python模拟实现Linux下的mkdir -p指令功能的代码如下:
代码如下 | 复制代码 |
import os, errno def mkdir_p(path): |
而对于Python 3.X(X >= 2)版本,os.makedirs 函数还有第三个参数 exist_ok,该参数为真时执行mkdir
-p,但如果给出了mode参数,目标目录已经存在并且与即将创建的目录权限不一致时,会抛出OSError异常。