makedirs - 遞迴目錄建立
給定具有以下內容的本地目錄:
└── dir1
├── subdir1
└── subdir2
我們想在新目錄 dir2 下建立相同的 subdir1,subdir2,它目前還不存在。
import os
os.makedirs("./dir2/subdir1")
os.makedirs("./dir2/subdir2")
執行此結果
├── dir1
│ ├── subdir1
│ └── subdir2
└── dir2
├── subdir1
└── subdir2
dir2 僅在第一次需要時建立,用於 subdir1 的建立。
如果我們使用了 os.mkdir ,我們就會遇到異常,因為 dir2 還不存在。
os.mkdir("./dir2/subdir1")
OSError: [Errno 2] No such file or directory: './dir2/subdir1'
如果目標目錄已存在,os.makedirs 將不喜歡它。如果我們再次重新執行它:
OSError: [Errno 17] File exists: './dir2/subdir1'
但是,通過捕獲異常並檢查目錄是否已建立,可以輕鬆解決此問題。
try:
os.makedirs("./dir2/subdir1")
except OSError:
if not os.path.isdir("./dir2/subdir1"):
raise
try:
os.makedirs("./dir2/subdir2")
except OSError:
if not os.path.isdir("./dir2/subdir2"):
raise