[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屬性來添加和讀取檔案的註釋。
avatar-img
67會員
118內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
程式輕鬆玩 的其他內容
在這篇教學中,我們將介紹如何使用Python的openpyxl套件將資料寫入Excel文件。openpyxl是一個功能強大的函式庫,可以讓我們輕鬆地處理Excel文件。
在這篇教學中,我們將介紹如何使用Python的openpyxl模組來讀取Excel文件中的資料。openpyxl是一個功能強大的函式庫,可以讓我們輕鬆地處理Excel文件。
  在現代職場競爭激烈的環境下,個人品牌的建立對於職場和職涯的發展至關重要。透過創作,我們可以展現自己的專業知識、創造力和價值觀,建立起一個有力的個人品牌。本文將以程式設計師和繪師兩個職業為例,詳細且系統性地探討如何透過創作來建立職場和職涯個人品牌。從選擇適合的創作方式、持續學習和分享、管理網絡形象
使用Python和OpenCV模組來讀取視訊鏡頭
在這篇教學中,我們將介紹如何使用Python的openpyxl套件將資料寫入Excel文件。openpyxl是一個功能強大的函式庫,可以讓我們輕鬆地處理Excel文件。
在這篇教學中,我們將介紹如何使用Python的openpyxl模組來讀取Excel文件中的資料。openpyxl是一個功能強大的函式庫,可以讓我們輕鬆地處理Excel文件。
  在現代職場競爭激烈的環境下,個人品牌的建立對於職場和職涯的發展至關重要。透過創作,我們可以展現自己的專業知識、創造力和價值觀,建立起一個有力的個人品牌。本文將以程式設計師和繪師兩個職業為例,詳細且系統性地探討如何透過創作來建立職場和職涯個人品牌。從選擇適合的創作方式、持續學習和分享、管理網絡形象
使用Python和OpenCV模組來讀取視訊鏡頭
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。
Thumbnail
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
Thumbnail
上一篇「【Google Colab Python系列】 初探Whisper: 來對一段Youtube影片進行辨識吧!」我們介紹了Whisper的基本用法及功能,這次我們除了語音辨識之外,還要下載辨識後的字幕檔,我想這對於我們常常看到沒有字幕的影片,若想要進行辨識與翻譯時非常有幫助。 這次的篇章主要做
Thumbnail
一、套件安裝 在使用Python操控Excel前,需要先安裝openpyxl模組。 二、建立工作簿 不需要先建立Excel檔案,就可以開始使用openpyxl;只要引用Workbook類別,就可以開始工作。 一個工作簿被建立起來的時候,至少會含有一張工作表。你可以用active屬性來使用這張工作表。
Thumbnail
到目前為止,我們都還是在附檔名為.py的Python檔案執行程式碼,當程式需要與外部的檔案互動,例如讀取文字、表格、或是影像來做分析,或是把程式執行的結果儲存下來,就需要能夠存取外部的檔案。例如,在上一節中,當貪食蛇遊戲結束之後,隨著程式停止執行,該次的分數也就被丟棄,若能將分數記錄下來,下次遊戲開
Thumbnail
在上一篇文章中,我們已經準備好製作LINE機器人的工具了,接下來我們就要來做一個最簡單的Python與LINE的串接練習,讓我們的機器人活起來,並且做出最基本的回話功能,如果還沒準備好串接所需的工具,記得先去看《【python】Python+LINE Bot 輕鬆打造股市機器人(二) : 所需準備的
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。
Thumbnail
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
Thumbnail
上一篇「【Google Colab Python系列】 初探Whisper: 來對一段Youtube影片進行辨識吧!」我們介紹了Whisper的基本用法及功能,這次我們除了語音辨識之外,還要下載辨識後的字幕檔,我想這對於我們常常看到沒有字幕的影片,若想要進行辨識與翻譯時非常有幫助。 這次的篇章主要做
Thumbnail
一、套件安裝 在使用Python操控Excel前,需要先安裝openpyxl模組。 二、建立工作簿 不需要先建立Excel檔案,就可以開始使用openpyxl;只要引用Workbook類別,就可以開始工作。 一個工作簿被建立起來的時候,至少會含有一張工作表。你可以用active屬性來使用這張工作表。
Thumbnail
到目前為止,我們都還是在附檔名為.py的Python檔案執行程式碼,當程式需要與外部的檔案互動,例如讀取文字、表格、或是影像來做分析,或是把程式執行的結果儲存下來,就需要能夠存取外部的檔案。例如,在上一節中,當貪食蛇遊戲結束之後,隨著程式停止執行,該次的分數也就被丟棄,若能將分數記錄下來,下次遊戲開
Thumbnail
在上一篇文章中,我們已經準備好製作LINE機器人的工具了,接下來我們就要來做一個最簡單的Python與LINE的串接練習,讓我們的機器人活起來,並且做出最基本的回話功能,如果還沒準備好串接所需的工具,記得先去看《【python】Python+LINE Bot 輕鬆打造股市機器人(二) : 所需準備的