首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python 一次建立多層目錄的方法:os.makedirs() 使用教學

     編輯:更多程式設計知識

問題情境

當需要建立多層巢狀目錄(如 /home/user/data/project)時,若中間層目錄不存在,使用 os.mkdir() 會拋出 FileNotFoundError。

解決方案:os.makedirs()

os.makedirs(path, exist_ok=True) 會遞迴建立所有中間目錄,且 exist_ok=True(Python 3.2+)可避免目錄已存在時拋出異常。

基本用法

import os

# 建立三層目錄
os.makedirs("/home/user/data", exist_ok=True)
print("目錄建立完成")

進階範例:動態路徑與錯誤處理

import os
import errno

def ensure_dir(path):
    try:
        os.makedirs(path, exist_ok=True)
    except OSError as e:
        if e.errno != errno.EEXIST:
            raise
        print(f"目錄已存在:{path}")
    else:
        print(f"目錄建立成功:{path}")

ensure_dir("/var/log/myapp/2024/01")
ensure_dir("/tmp/test/deep/nested/dir")

os.mkdir() vs os.makedirs()

方法建立單層建立多層目錄存在行為
os.mkdir()✓✗ (需父目錄存在)拋出 FileExistsError
os.makedirs()✓✓ (遞迴建立)exist_ok=True 時不報錯

注意事項

  • 路徑分隔符建議使用 os.path.join() 或 pathlib.Path 以利跨平台。
  • 權限不足會拋出 PermissionError,需以適當權限執行。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved