Python實現遞迴建立多級檔案夾的例子

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.