[Python] 檔案壓縮與解壓縮

2023/06/18閱讀時間約 4 分鐘
檔案壓縮和解壓縮是日常工作中常見的任務。Python提供了zipfile模組,這使得檔案壓縮和解壓縮變得簡單而直觀。

壓縮檔案

首先,我們將看一下如何使用Python壓縮檔案。我們將使用zipfile模組的ZipFile類來執行此操作。
import zipfile
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)
上述程式碼中,compress_files函式接收兩個參數:file_paths是一個檔案路徑列表,表示要壓縮的檔案;output_path是指定壓縮檔案的輸出路徑。
在函式內部,我們使用with語句來建立一個ZipFile物件。這將確保在程式碼塊執行完畢後,檔案會被正確地關閉。
然後,我們使用迴圈遍歷file_paths列表,將每個檔案逐一加入到壓縮檔案中,使用write方法。
現在,您可以使用以下程式碼示例來壓縮檔案:
files_to_compress = ['file1.txt', 'file2.txt', 'file3.txt']
compress_files(files_to_compress, 'compressed.zip')
在上述示例中,我們將file1.txtfile2.txtfile3.txt這三個檔案壓縮到名為compressed.zip的壓縮檔案中。

解壓縮檔案

接下來,我們將看一下如何使用Python解壓縮檔案。同樣,我們將使用zipfile模組的ZipFile類來執行此操作。
import zipfile
def extract_files(zip_path, output_dir):
    with zipfile.ZipFile(zip_path, 'r') as zipf:
        zipf.extractall(output_dir)
上述程式碼中,extract_files函式接收兩個參數:zip_path是要解壓縮的ZIP檔案的路徑;output_dir是指定解壓縮檔案的輸出目錄。
在函式內部,我們使用with語句來建立一個ZipFile物件。同樣,這將確保在程式碼塊執行完畢後,檔案會被正確地關閉。
然後,我們使用extractall方法將ZIP檔案中的所有內容提取到指定的output_dir目錄中。
現在,您可以使用以下程式碼示例來解壓縮檔案:
extract_files('compressed.zip', 'extracted_files')
在上述示例中,我們將名為compressed.zip的壓縮檔案解壓縮到extracted_files目錄中。

進一步的擴展

上面的示例只是使用zipfile模組進行檔案壓縮和解壓縮的基本操作。但該模組還提供了其他許多功能。以下是一些你可以進一步探索的例子:
  • 壓縮時的選項:ZipFile類的建構函式接受一些額外的參數,如compression(指定壓縮方法)、allowZip64(允許ZIP64格式)、compresslevel(壓縮級別)等。你可以使用這些選項來自定義壓縮行為。
  • 解壓縮單個檔案:ZipFile類還提供了extract方法,你可以使用它來解壓縮單個檔案而不是全部提取。
  • 檔案加密:ZipFile類支援對檔案進行加密,可以使用setpassword方法設置密碼。
  • 檔案註釋:你可以使用ZipInfo類的comment屬性來添加和讀取檔案的註釋。
51會員
101內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
留言0
查看全部
發表第一個留言支持創作者!