Python壓縮模塊zipfile實(shí)現(xiàn)原理及用法解析
一、python壓縮模塊簡(jiǎn)介
python直接通過(guò)內(nèi)置壓縮模塊可以直接進(jìn)行壓縮文件的創(chuàng)建;
內(nèi)置模塊 zipfile/rarfile 完成壓縮文件的操作。
二、 zipfile模塊基礎(chǔ)使用
2.1 對(duì)一個(gè)文件進(jìn)行zip壓縮
# 把當(dāng)前目錄的test.txt文件壓縮到a.zip壓縮包中 import zipfile f = zipfile.ZipFile('a.zip', 'w', zipfile.ZIP_DEFLATED) f.write('test.txt') f.close()
上述代碼中:
- a.zip是壓縮后要保存的文件名
- w 表示寫(xiě)入壓縮文件的含義
- ZIP_DEFLATED表示壓縮;ZIP_STORE表示只打包,不壓縮(類似Linux中的gz跟tar格式)
- write方法:目前填寫(xiě)的參數(shù) test.txt 為當(dāng)前目錄下的文件,它表示要壓縮的文件。
2.2 對(duì)一個(gè)zip壓縮文件進(jìn)行解壓縮
# 把當(dāng)前目錄的a.zip壓縮包中的test.txt進(jìn)行解壓 import zipfile f = zipfile.ZipFile('a.zip','r') f.extract('test.txt')
上述代碼中:
a.zip 是當(dāng)前目前下的壓縮包文件,該壓縮包目前只壓縮了一個(gè) test.txt 文件
extract() 方法的作用就用來(lái)進(jìn)行解壓縮,參數(shù)填寫(xiě)的是 a.zip 壓縮包中必須包含的文件名信息
如果我不知道壓縮包中包含了什么文件信息,那就比較麻煩??梢杂胣amelist()方法解決,如下2.3
2.3 對(duì)一個(gè)zip壓縮文件中的所有文件進(jìn)行解壓縮
import zipfile f = zipfile.ZipFile('a.zip','r') for file in f.namelist(): f.extract(file,'./temp')
上述代碼中:
namelist()方法返回壓縮包中包含的所有文件信息,返回值為 list 類型
通過(guò)循環(huán)的方式把所有都進(jìn)行解壓到 當(dāng)前目錄下的temp目錄
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python超詳細(xì)講解內(nèi)存管理機(jī)制
本章主要介紹Pyhon的內(nèi)存管理,以Pyhon的計(jì)數(shù)機(jī)制作為引入,介紹Pyhon的內(nèi)存管理方式,感興趣的朋友來(lái)看看吧2022-06-06Python functools.lru_cache裝飾器性能提升利器深入探究
本文將詳細(xì)介紹functools.lru_cache裝飾器的原理、用法以及適當(dāng)?shù)膱?chǎng)景,以幫助你更好地利用這一功能,它可以用來(lái)緩存函數(shù)的輸出,以避免重復(fù)計(jì)算,從而顯著提高程序的執(zhí)行速度2024-01-01對(duì)pandas通過(guò)索引提取dataframe的行方法詳解
今天小編就為大家分享一篇對(duì)pandas通過(guò)索引提取dataframe的行方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02卷積神經(jīng)網(wǎng)絡(luò)經(jīng)典模型及其改進(jìn)點(diǎn)學(xué)習(xí)匯總
這篇文章主要為大家介紹了卷積神經(jīng)網(wǎng)絡(luò)經(jīng)典模型及其改進(jìn)點(diǎn)學(xué)習(xí)匯總,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Mac中安裝anaconda并配置虛擬環(huán)境的詳細(xì)過(guò)程
這篇文章主要給大家介紹了關(guān)于Mac中安裝anaconda并配置虛擬環(huán)境的詳細(xì)過(guò)程,anaconda是包管理器和環(huán)境管理器,使用它可以方便地創(chuàng)作,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10超詳細(xì)注釋之OpenCV按位AND OR XOR和NOT
這篇文章主要介紹了OpenCV按位AND OR XOR和NOT運(yùn)算,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Python實(shí)現(xiàn)基于二叉樹(shù)存儲(chǔ)結(jié)構(gòu)的堆排序算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)基于二叉樹(shù)存儲(chǔ)結(jié)構(gòu)的堆排序算法,結(jié)合實(shí)例形式分析了Python二叉樹(shù)的定義、遍歷及堆排序算法相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-12-12在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程
這篇文章主要介紹了在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程,包括安裝supervisor來(lái)管理進(jìn)程的用法,整套配下來(lái)相當(dāng)實(shí)用,需要的朋友可以參考下2016-06-06