在 Python 中,您可以使用內建模組 os 和 shutil 來刪除檔案和資料夾。
以下是一些關鍵的概念和方法:
使用 os.remove() 方法來刪除單一檔案。
範例程式碼
import os
# 檔案路徑
file_path = "example.txt"
# 檢查檔案是否存在,然後刪除
if os.path.exists(file_path):
os.remove(file_path)
print(f"{file_path} 已刪除")
else:
print(f"{file_path} 不存在")
注意
如果檔案不存在且直接執行 os.remove(),會拋出 FileNotFoundError。
確保在執行刪除前,確認檔案路徑正確。
使用 os.rmdir() 刪除空資料夾。
範例程式碼
import os
# 資料夾路徑
folder_path = "empty_folder"
# 檢查資料夾是否存在,然後刪除
if os.path.exists(folder_path):
os.rmdir(folder_path)
print(f"{folder_path} 已刪除")
else:
print(f"{folder_path} 不存在")
os.rmdir() 只能刪除空資料夾。如果資料夾中有檔案,會引發 OSError。
使用 shutil.rmtree() 刪除資料夾及其內容(包含檔案和子資料夾)。
範例程式碼
import shutil
# 資料夾路徑
folder_path = "non_empty_folder"
# 檢查資料夾是否存在,然後刪除
if os.path.exists(folder_path):
shutil.rmtree(folder_path)
print(f"{folder_path} 已刪除,包括其中的所有內容")
else:
print(f"{folder_path} 不存在")
注意
shutil.rmtree() 是強力刪除,會移除資料夾及其所有內容,請謹慎操作。
如果要在刪除前詢問用戶確認,可以結合輸入功能。
刪除特定條件的檔案
可以結合 os.listdir() 和條件判斷來刪除特定檔案,例如刪除 .txt 檔案:
import os
folder_path = "example_folder"
# 列出資料夾中的檔案
for file_name in os.listdir(folder_path):
if file_name.endswith(".txt"): # 找到所有 .txt 檔案
os.remove(os.path.join(folder_path, file_name))
print(f"{file_name} 已刪除")
權限問題:確認執行程式的使用者具有刪除檔案/資料夾的權限。
不存在的路徑:在操作前使用 os.path.exists() 確保路徑有效。
不必要的遞迴操作:避免錯誤地刪除不應刪除的父資料夾。