前言
當你感到悲哀痛苦時,最好是去學些什麼東西。學習會使你永遠立于不敗之地。
筆者在實作自動化測試架構的時候,由于測試報告中的html報告和檔案夾中的圖檔都要發作為郵件附件發送,是以筆者幹脆先做成壓縮檔案後再發郵件。分享分享python如何進行檔案壓縮的。
一、python壓縮子產品簡介
- python直接通過内置壓縮子產品可以直接進行壓縮檔案的建立;
- 内置子產品 zipfile/rarfile 完成壓縮檔案的操作。
二、 zipfile子產品基礎使用
- 2.1 對一個檔案進行zip壓縮
# 把目前目錄的test.txt檔案壓縮到a.zip壓縮包中
import zipfile
f = zipfile.ZipFile('a.zip', 'w', zipfile.ZIP_DEFLATED)
f.write('test.txt')
f.close()
上述代碼中:
- a.zip是壓縮後要儲存的檔案名
- w 表示寫入壓縮檔案的含義
- ZIP_DEFLATED表示壓縮;ZIP_STORE表示隻打包,不壓縮(類似Linux中的gz跟tar格式)
- write方法:目前填寫的參數 test.txt 為目前目錄下的檔案,它表示要壓縮的檔案。
- 2.2 對一個zip壓縮檔案進行解壓縮
# 把目前目錄的a.zip壓縮包中的test.txt進行解壓
import zipfile
f = zipfile.ZipFile('a.zip','r')
f.extract('test.txt')
- a.zip 是目前目前下的壓縮封包件,該壓縮包目前隻壓縮了一個 test.txt 檔案
- extract() 方法的作用就用來進行解壓縮,參數填寫的是 a.zip 壓縮包中必須包含的檔案名資訊
- 如果我不知道壓縮包中包含了什麼檔案資訊,那就比較麻煩。可以用namelist()方法解決,如下2.3
- 2.3 對一個zip壓縮檔案中的所有檔案進行解壓縮
import zipfile
f = zipfile.ZipFile('a.zip','r')
for file in f.namelist():
f.extract(file,'./temp')
- namelist()方法傳回壓縮包中包含的所有檔案資訊,傳回值為 list 類型
- 通過循環的方式把所有都進行解壓到 目前目錄下的temp目錄
作者:藍寅
出處:https://www.cnblogs.com/dream66/
歡迎轉載,但未經作者同意請保留此段聲明,并在文章頁面明顯位置給出原文連結。