1. 使用 Python 建立資料夾的基本方法
Python 提供了使用標準函式庫輕鬆建立資料夾的方法。最常使用的是 os
模組。本章節將詳細介紹如何使用 os
模組來建立資料夾。
使用 os 模組建立資料夾的方法
透過 os
模組,可以在程式中建立資料夾。這對於整理資料、儲存日誌等情況非常有幫助。
基本的建立資料夾方式如下:
import os
# 指定要建立的資料夾路徑
path = 'example_folder'
# 建立資料夾
os.mkdir(path)
這段程式碼使用 os.mkdir()
函式來建立一個名為「example_folder」的新資料夾。不過,如果該資料夾已經存在,將會拋出 FileExistsError
錯誤。
建立多層資料夾:os.makedirs()
如果不只要建立單一資料夾,而是希望一次建立多層目錄,可以使用 os.makedirs()
函式。
import os
# 指定多層資料夾路徑
path = 'example_folder/subfolder'
# 即使父資料夾不存在也會自動建立
os.makedirs(path)
使用 os.makedirs()
時,即使指定路徑中的上層資料夾尚未存在,也會一併建立,讓整體資料夾結構一次完成,十分方便。
錯誤處理:使用 exist_ok=True
如果希望在資料夾已存在時不產生錯誤並繼續執行,可以加入 exist_ok=True
參數。如下例所示,即使資料夾已存在,也不會出錯。
import os
path = 'example_folder/subfolder'
# 若資料夾已存在,忽略錯誤
os.makedirs(path, exist_ok=True)
這樣可以避免每次執行程式時因為資料夾已存在而出現錯誤,有助於撰寫更穩定的程式碼。

2. 使用 Pathlib 模組建立資料夾
從 Python 3.4 開始,pathlib
模組被納入標準函式庫。此模組可以用物件導向的方式操作路徑,使建立資料夾變得更直覺易懂。以下將介紹如何使用 pathlib
模組來建立資料夾。
Pathlib 模組的使用方式
使用 pathlib.Path()
可以建立資料夾。與 os
模組類似,也可加上 exist_ok=True
參數來避免資料夾已存在時出現錯誤。
from pathlib import Path
# 指定要建立的資料夾路徑
path = Path('example_folder/subfolder')
# 建立資料夾
path.mkdir(parents=True, exist_ok=True)
在這段程式中,加入 parents=True
表示若父資料夾不存在也會一併建立,這樣就能達成與 os.makedirs()
相同的效果。
Pathlib 模組的優點
pathlib
模組的最大特色是支援物件導向的操作方式。透過 Path
物件,不只可以建立資料夾,也能直覺地進行路徑結合、檔案操作等,有助於提升程式碼的可讀性與維護性。
3. 建立資料夾時的錯誤處理
在建立資料夾的過程中,可能會發生各種錯誤。例如權限不足、指定的路徑無效等等。本章節將說明如何實作錯誤處理機制。
處理權限錯誤與無效路徑
使用 os.makedirs()
或 pathlib.Path().mkdir()
建立資料夾時,常見的錯誤包括 PermissionError
(權限錯誤)與 FileNotFoundError
(路徑錯誤)。適當處理這些錯誤可以讓程式更加穩健。
以下是錯誤處理的範例:
import os
path = 'example_folder/subfolder'
try:
os.makedirs(path, exist_ok=True)
print(f'資料夾 "{path}" 已建立。')
except PermissionError:
print('沒有建立資料夾的權限。')
except FileNotFoundError:
print('指定的路徑無效。')
except Exception as e:
print(f'發生了未預期的錯誤: {e}')
這段程式碼對常見的錯誤給出對應的處理方式,也能捕捉其他未知錯誤,讓程式不中斷並能妥善回應。
進階的錯誤處理
在可能會發生錯誤的情境中,也可以考慮將錯誤資訊寫入日誌檔或顯示給使用者。尤其是在大型應用程式中,錯誤處理的好壞會直接影響使用體驗,因此應該要妥善設計。

4. 刪除資料夾的方法
除了建立資料夾以外,有時也需要刪除不再使用的資料夾。在 Python 中,可以使用標準函式庫中的 os
或 shutil
模組來刪除資料夾。本章將說明具體的刪除方法。
使用 os.rmdir() 刪除資料夾
os
模組中的 rmdir()
函式可以刪除資料夾。不過這個函式只能刪除「空的」資料夾。
import os
# 指定要刪除的資料夾路徑
path = 'example_folder/subfolder'
# 刪除資料夾
os.rmdir(path)
這段程式碼僅在資料夾為空時才會成功執行。如果資料夾中還有檔案或其他子資料夾,將會發生 OSError
。
使用 shutil.rmtree() 遞迴刪除資料夾
當資料夾中包含檔案或子資料夾時,可以使用 shutil
模組的 rmtree()
函式來遞迴刪除整個資料夾與其內容。
import shutil
# 指定要刪除的資料夾路徑
path = 'example_folder/subfolder'
# 刪除資料夾與其中所有內容
shutil.rmtree(path)
這種方式即使資料夾不為空也能正常刪除,非常適合用來清除整個資料夾樹。不過請注意,被刪除的檔案與資料夾無法還原,因此要小心使用。
錯誤處理
在刪除資料夾時也要考慮錯誤處理。例如沒有刪除權限、指定的路徑不存在等情況。以下是包含錯誤處理的程式範例:
import shutil
path = 'example_folder/subfolder'
try:
shutil.rmtree(path)
print(f'資料夾 "{path}" 已刪除。')
except PermissionError:
print('沒有刪除資料夾的權限。')
except FileNotFoundError:
print('找不到指定的資料夾。')
except Exception as e:
print(f'發生了未預期的錯誤: {e}')
這段程式可以有效處理常見錯誤,也能對未預期的例外情況作出回應。
5. 實際應用情境
在本章中,我們將介紹如何結合資料夾的建立與刪除,來應用於實際專案或資料處理中。例如根據年度或月份分類資料的情境等。
依年份與月份建立資料夾
例如,當您希望依據年份或月份來分類整理資料時,可以撰寫自動建立資料夾的腳本。
import os
from datetime import datetime
# 取得目前的年份與月份
current_year = datetime.now().year
current_month = datetime.now().month
# 設定資料夾路徑
folder_path = f'data/{current_year}/{current_month}'
# 建立資料夾
os.makedirs(folder_path, exist_ok=True)
print(f'資料夾 "{folder_path}" 已建立。')
這段程式會根據目前的年份與月份自動建立資料夾,有助於更有效率地整理資料。
批次刪除資料夾
如果希望根據特定條件批次刪除不需要的資料夾,也可以利用 Python 來高效執行。舉例來說,您可以撰寫程式來刪除超過一定天數的舊資料夾。
import shutil
import os
from datetime import datetime, timedelta
# 取得 30 天前的日期
threshold_date = datetime.now() - timedelta(days=30)
# 資料夾的基礎路徑
base_path = 'data/'
# 檢查資料夾,刪除舊的資料夾
for folder_name in os.listdir(base_path):
folder_path = os.path.join(base_path, folder_name)
if os.path.isdir(folder_path):
folder_date = datetime.strptime(folder_name, '%Y-%m-%d')
if folder_date < threshold_date:
shutil.rmtree(folder_path)
print(f'舊資料夾 "{folder_path}" 已被刪除。')
像這樣的應用案例可以幫助您透過程式自動化資料夾的管理與整理,減少人工操作的負擔。
6. 總結
本文介紹了如何使用 Python 來建立與刪除資料夾。我們涵蓋了使用 os
與 pathlib
模組的基本操作方式,並說明了錯誤處理及實際應用情境。透過這些技巧,您可以撰寫出更有效率且更穩定的資料管理程式。
作為下一步,您也可以進一步學習如何操作檔案、進行壓縮或其他更進階的資料管理技術。