天天看點

python常識系列12-->python對檔案進行壓縮解壓縮基于zip格式

前言

當你感到悲哀痛苦時,最好是去學些什麼東西。學習會使你永遠立于不敗之地。
  筆者在實作自動化測試架構的時候,由于測試報告中的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目錄
超全面的測試IT技術課程,0元立即加入學習!有需要的朋友戳: 騰訊課堂測試技術學習位址

作者:藍寅

出處:https://www.cnblogs.com/dream66/

歡迎轉載,但未經作者同意請保留此段聲明,并在文章頁面明顯位置給出原文連結。