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): 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異常。