[Python] 檔案壓縮與解壓縮

更新於 發佈於 閱讀時間約 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
69會員
132內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
留言
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 追蹤
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
Thumbnail
情況描述 我們在「【🔒 Python 先修班】教你親手打包專屬套件庫的手作課(pip install…)」有提到如何打包Python讓自己的程式變成套件, 讓其他人可以用pip install的方式進行安裝,😲 But… 我們實際上打包後, 發現到引用的檔案都有被打包進去,但目錄卻未被打包
Thumbnail
f字符串(f-string)在Python 3.6版本引入了新特性,可以更方便地格式化字符串。本文介紹了f-string的基本使用方法,以及表達式、運算符、格式化控制、字典和列表的應用,以及調用方法和函數等。f-string提供了一種更靈活的方式,使你能夠控制字符串的外觀,以滿足不同情況下的需求。
Thumbnail
抓取對象檔案,自動進行壓縮處理,壓縮後產出一個壓縮檔案,如此便可節省硬碟使用空間
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
本文介紹了Python中zip與enumerate函式的使用,以及它們的語法說明和程式範例。zip函式允許同時迭代多個可迭代對象,這使得程式碼更簡潔;而enumerate函式則在迭代時,提供元素的索引,使得實用工具,尤其是當需要追蹤元素的位置時。
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
Thumbnail
情況描述 我們在「【🔒 Python 先修班】教你親手打包專屬套件庫的手作課(pip install…)」有提到如何打包Python讓自己的程式變成套件, 讓其他人可以用pip install的方式進行安裝,😲 But… 我們實際上打包後, 發現到引用的檔案都有被打包進去,但目錄卻未被打包
Thumbnail
f字符串(f-string)在Python 3.6版本引入了新特性,可以更方便地格式化字符串。本文介紹了f-string的基本使用方法,以及表達式、運算符、格式化控制、字典和列表的應用,以及調用方法和函數等。f-string提供了一種更靈活的方式,使你能夠控制字符串的外觀,以滿足不同情況下的需求。
Thumbnail
抓取對象檔案,自動進行壓縮處理,壓縮後產出一個壓縮檔案,如此便可節省硬碟使用空間
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
本文介紹了Python中zip與enumerate函式的使用,以及它們的語法說明和程式範例。zip函式允許同時迭代多個可迭代對象,這使得程式碼更簡潔;而enumerate函式則在迭代時,提供元素的索引,使得實用工具,尤其是當需要追蹤元素的位置時。