[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
留言分享你的想法!
avatar-img
程式輕鬆玩
72會員
163內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
程式輕鬆玩的其他內容
2025/04/20
本週科技圈掀起多項重磅消息:OpenAI於4月14日釋出GPT‑4.1系列模型,進一步強化編碼與長文理解能力 Reuters;Chipolo推出POP藍牙追蹤器,同時支援Apple與Google尋找網路 The Verge;南韓新創RLWRLD完成1,480萬美元募資,將打造專屬機器人基礎模型
Thumbnail
2025/04/20
本週科技圈掀起多項重磅消息:OpenAI於4月14日釋出GPT‑4.1系列模型,進一步強化編碼與長文理解能力 Reuters;Chipolo推出POP藍牙追蹤器,同時支援Apple與Google尋找網路 The Verge;南韓新創RLWRLD完成1,480萬美元募資,將打造專屬機器人基礎模型
Thumbnail
2025/04/20
本週遊戲動態涵蓋經典 25 週年重返 PC 平台、回合制策略新作重燃星戰熱潮、Remedy 荒誕合擊新作搶先曝光、Game Pass 下架名單震撼登場,以及 Steam 獨立新秀推薦不容錯過 PC GamerWindows Central。
Thumbnail
2025/04/20
本週遊戲動態涵蓋經典 25 週年重返 PC 平台、回合制策略新作重燃星戰熱潮、Remedy 荒誕合擊新作搶先曝光、Game Pass 下架名單震撼登場,以及 Steam 獨立新秀推薦不容錯過 PC GamerWindows Central。
Thumbnail
2025/04/08
近來因為川普政府啟動全新一輪對等關稅政策,全球貿易風暴席捲而來,而台灣面臨的衝擊更是不容小覷。美方以台灣過去對美出口關稅達64%為依據,採取「對等關稅」原則回敬徵收32%關稅,這一舉措不僅使得國際市場恐慌連連,台股也出現劇烈下跌,吸引了各界關注。
Thumbnail
2025/04/08
近來因為川普政府啟動全新一輪對等關稅政策,全球貿易風暴席捲而來,而台灣面臨的衝擊更是不容小覷。美方以台灣過去對美出口關稅達64%為依據,採取「對等關稅」原則回敬徵收32%關稅,這一舉措不僅使得國際市場恐慌連連,台股也出現劇烈下跌,吸引了各界關注。
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
本文介紹了Python中zip與enumerate函式的使用,以及它們的語法說明和程式範例。zip函式允許同時迭代多個可迭代對象,這使得程式碼更簡潔;而enumerate函式則在迭代時,提供元素的索引,使得實用工具,尤其是當需要追蹤元素的位置時。
Thumbnail
本文介紹了Python中zip與enumerate函式的使用,以及它們的語法說明和程式範例。zip函式允許同時迭代多個可迭代對象,這使得程式碼更簡潔;而enumerate函式則在迭代時,提供元素的索引,使得實用工具,尤其是當需要追蹤元素的位置時。
Thumbnail
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
Thumbnail
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
Thumbnail
在第十四課中,我們將探討 Python 中的檔案操作,包括如何讀取、寫入和管理文件。這對於許多實際應用場景都是必要的,例如日誌記錄、資料分析和資料持久化。
Thumbnail
在第十四課中,我們將探討 Python 中的檔案操作,包括如何讀取、寫入和管理文件。這對於許多實際應用場景都是必要的,例如日誌記錄、資料分析和資料持久化。
Thumbnail
在第九課中,我們將學習 Python 的文件讀取與寫入。 Python 提供了一些內建的函式,使我們能夠輕鬆讀取和寫入文件。
Thumbnail
在第九課中,我們將學習 Python 的文件讀取與寫入。 Python 提供了一些內建的函式,使我們能夠輕鬆讀取和寫入文件。
Thumbnail
在结束了Python数据类型学习之后,我们今天开始进入一个新的篇章。今天,让我们来详细了解一下在Python中如何去进行文件操作。
Thumbnail
在结束了Python数据类型学习之后,我们今天开始进入一个新的篇章。今天,让我们来详细了解一下在Python中如何去进行文件操作。
Thumbnail
在這篇文章中,我將簡要介紹如何使用Python來處理文件,包括如何打開、讀取、寫入和關閉文件。我也會給出一些範例程式碼和註解,讓你更容易理解和學習。要打開一個文件,我們需要使用open()函數,它接受文件名稱和模式兩個參數。文件名稱是一個字串,表示要訪問的文件的路徑和名稱。
Thumbnail
在這篇文章中,我將簡要介紹如何使用Python來處理文件,包括如何打開、讀取、寫入和關閉文件。我也會給出一些範例程式碼和註解,讓你更容易理解和學習。要打開一個文件,我們需要使用open()函數,它接受文件名稱和模式兩個參數。文件名稱是一個字串,表示要訪問的文件的路徑和名稱。
Thumbnail
前言: 在前面的文裡講過,之前交付給工廠的程式都屬於原始碼,但是今天假設不想公開原始碼給其他人的話或是你要交付的對象是客戶,然後又礙於公司的一些規定所以不能給原始碼的時候,其實可以交付pyc檔。但在現今火箭都上外太空了,如果對方有心想要破解的話其實網路想也有很多教導反組譯的方式。 使用說明
Thumbnail
前言: 在前面的文裡講過,之前交付給工廠的程式都屬於原始碼,但是今天假設不想公開原始碼給其他人的話或是你要交付的對象是客戶,然後又礙於公司的一些規定所以不能給原始碼的時候,其實可以交付pyc檔。但在現今火箭都上外太空了,如果對方有心想要破解的話其實網路想也有很多教導反組譯的方式。 使用說明
Thumbnail
到目前為止,我們都還是在附檔名為.py的Python檔案執行程式碼,當程式需要與外部的檔案互動,例如讀取文字、表格、或是影像來做分析,或是把程式執行的結果儲存下來,就需要能夠存取外部的檔案。例如,在上一節中,當貪食蛇遊戲結束之後,隨著程式停止執行,該次的分數也就被丟棄,若能將分數記錄下來,下次遊戲開
Thumbnail
到目前為止,我們都還是在附檔名為.py的Python檔案執行程式碼,當程式需要與外部的檔案互動,例如讀取文字、表格、或是影像來做分析,或是把程式執行的結果儲存下來,就需要能夠存取外部的檔案。例如,在上一節中,當貪食蛇遊戲結束之後,隨著程式停止執行,該次的分數也就被丟棄,若能將分數記錄下來,下次遊戲開
Thumbnail
patchm此文章主要藉由一個exadata 季度補丁來介紹下載方式,解壓縮,與目錄架構。 QFSDP Quarterly Full Stack Download Patch for Exadata (QFSDP)是僅用於EXADATA MACHINE 每季度發行的補丁,內容包括有: Opatch
Thumbnail
patchm此文章主要藉由一個exadata 季度補丁來介紹下載方式,解壓縮,與目錄架構。 QFSDP Quarterly Full Stack Download Patch for Exadata (QFSDP)是僅用於EXADATA MACHINE 每季度發行的補丁,內容包括有: Opatch
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News