在日常開發與自動化流程中,檔案壓縮與解壓縮是非常常見的需求。
Python 內建的zipfile 模組,可以讓你輕鬆完成這些操作 👍📥 匯入模組
import zipfile
📦 壓縮檔案
以下函式可以將多個檔案壓縮成一個 ZIP 檔:
def compress_files(file_paths, output_path): with zipfile.ZipFile(output_path, 'w') as zipf: for file_path in file_paths: zipf.write(file_path)
▶️ 使用範例
files_to_compress = ['file1.txt', 'file2.txt', 'file3.txt']compress_files(files_to_compress, 'compressed.zip')
👉 會產生一個 compressed.zip 壓縮檔
📂 解壓縮檔案
def extract_files(zip_path, output_dir): with zipfile.ZipFile(zip_path, 'r') as zipf: zipf.extractall(output_dir)
▶️ 使用範例
extract_files('compressed.zip', 'extracted_files')
👉 所有檔案會被解壓到 extracted_files 資料夾
⚠️ 常見注意事項
1️⃣ 壓縮檔路徑結構
zipf.write(file_path)
👉 預設會保留原本路徑
👉 若只想保留檔名:
import oszipf.write(file_path, os.path.basename(file_path))
2️⃣ 解壓縮覆蓋問題
👉 若目標資料夾已有相同檔案,會直接覆蓋
3️⃣ 確保資料夾存在
import osif not os.path.exists(output_dir): os.makedirs(output_dir)
🚀 進階用法
🔹 指定壓縮方式
with zipfile.ZipFile('test.zip', 'w', compression=zipfile.ZIP_DEFLATED) as zipf: zipf.write('file.txt')
🔹 解壓單一檔案
with zipfile.ZipFile('compressed.zip', 'r') as zipf: zipf.extract('file1.txt', 'output_folder')
🔹 設定密碼(解壓)
with zipfile.ZipFile('compressed.zip') as zipf: zipf.extractall(pwd=b'password')
🎯 小結
透過 zipfile,你可以輕鬆做到:
✔ 壓縮多個檔案
✔ 解壓整個 ZIP ✔ 控制壓縮方式 ✔ 解壓指定檔案

















