➣ Reading Time: 4 minutes

前言

我們在進行 python 檔案處理時,會經常需要建立指定路徑的資料夾,
本文提供 建立資料夾的模版可供直接套用。

範例與模板

import os
os.makedirs(path, mode=0o777)

其中:

  • path: 想要建立的資料夾路徑
  • mode=0o777:建立資料夾的權限(像這裡就是權限777)

補充說明

「os.makedirs」建立的資料夾路徑,是必定建立的!
(也就是說,如果沿著路徑上的資料夾不存在,都會建立)

import os
path = "./a/b/c"
os.makedirs(path, mode=0o777)

我們可以看到路徑會全部建立出來!

注意事項 -「當目的路徑已經存在,會有error!」

我們將上面的程式碼重複執行兩次,
我們會發現第二次的時候出現了 Error,
表示我們不能在已經存在的目的路徑,再執行一次。(見下圖)

注意事項 – 應對處理方式

我們參考這篇文章提供的方法,預先檢查資料夾是否存在。
並且搭配 if 的方式預先進行檢查,如果存在就不做創建資料夾的動作。

import os
path = "./a/b/c"
if not os.path.isdir(path):
    os.makedirs(path, mode=0o777)

如此一來,在創建資料夾之前,
我們都能先透過「if not os.path.isdir(path)」這行先確認資料夾是否存在。
避免程式出現 error 而中止。

注意事項 – 小實驗

我們可以先移除最終的目的資料夾「 c 」,在執行一次看看,
我們發現程式就能夠正常執行,也就是說我們只需要保證「最終資料夾不存在」即可。

不走 python 流派也是有其他作法

可以參考這篇:

運用 linux 指令搭配 python 的 os.system() 也能達到一樣的效果哦!

Refernce

https://www.runoob.com/python/os-makedirs.html

 ⭐Python 基礎用法 相關文章整理⭐:
1.【Python】python list 清除, 移除內容元素 remove, pop, del, clear相關用法整理 sample code (內含範例程式碼)
2.【Python】寫模組 module、package 總整理 Importing files from different folder
3.【Python】python assert (斷言) 用法 sample code (內含範例程式碼)
4.【Python】python 一行 if else 語法 (one line if else) sample code (內含範例程式碼)
⭐Python 字串處理 相關文章整理⭐:
1.【Python】python string format str.format 總整理
⭐Python 檔案處理相關文章整理⭐:
1.【Python】python 開關檔範例 與 程式模板 with open / file open sample code
2.【Python】取出檔案名稱 (含副檔名、不含副檔名) os path basename split 取出 檔名 路徑 不要副檔名 sample code
3.【Python】在 python 中利用 os.chmod 更改檔案的權限 chmod 777
4.【Python】利用 shutil 來複製檔案 shutil copy file
5.【Python】python 建立資料夾範例 mkdir os.makedirs() sample code
6.【Python】python 移除資料夾範例 rmdir shutil.rmtree() sample code
7.【Python】確認檔案是否存在 os.path.isfile / 確認資料夾是否存在 os.path.isdir sample code is folder / file exist
⭐Python 系統偵測 相關文章整理⭐:
1.【Python】python pyinotify sample code 偵測指定路徑底下的文件變化 (內有範例程式碼)
⭐Python 平行運算 相關文章整理⭐:
1.【Python】python pooling multiprocess – 用多核心來執行程式 sample code (內含範例程式碼)
2.【Python】python thread multiprocess 比較總整理
⭐Python 測試程式 相關文章整理⭐:
1.【Python】python 測試程式 – 利用 doctest 測試 python testcase 的優雅寫法,適用於 leetcode (doctest in function,搭配 function 的用法)
2.【Leetcode】python – 利用 doctest 測試 leetcode python testcase 的優雅寫法 (doctest in class,搭配 class 的用法)