




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第python壓縮和解壓縮模塊之zlib的用法目錄python壓縮和解壓縮模塊之zlibpython中zlib庫(kù)用法zlib主要用于壓縮與解壓縮
python壓縮和解壓縮模塊之zlib
由于早期的zlib和Python之間不兼容,故推薦1.1.4以后的版本。導(dǎo)入zlib后可以查看版本號(hào)
importzlib
zlib.ZLIB_VERSION
'1.2.11'
zlib.ZLIB_RUNTIME_VERSION
'1.2.11'
zlib中封裝了兩對(duì)壓縮和解壓的函數(shù)
壓縮解壓compressdecompresscompressobjdecompressobj
其中compress和decompress比較簡(jiǎn)單,二者聲明為
press(data,level=-1)
zlib.decompress(data,wbits=MAX_WBITS,bufsize=DEF_BUF_SIZE)
即分別對(duì)data進(jìn)行壓縮和解壓。
其中l(wèi)evel為整數(shù),用于指定壓縮等級(jí),決定壓縮后文件的大小,取值為-1到9。
zlib中內(nèi)置了四個(gè)常量,用以表示四種情況。
壓縮模式1Z_BEST_SPEED最快速度和最低壓縮率9Z_BEST_COMPRESSION最慢速度最高壓縮率0Z_NO_COMPRESSION不壓縮-1Z_DEFAULT_COMPRESSION一般相當(dāng)于設(shè)壓縮等級(jí)為6
解壓函數(shù)中的wbits控制歷史緩沖區(qū)的大?。ɑ蚍Q(chēng)窗口大?。┮约八谕念^部和尾部格式。
默認(rèn)為MAX_WBITS,其取值范圍和含義如下
包含頭尾+8至+15必須窗口尺寸以二為底的對(duì)數(shù)。輸入必須包含zlib頭部和尾部。0必須含頭根據(jù)zlib頭部自動(dòng)確定窗口大小8至15無(wú)頭尾使用wbits絕對(duì)值作為窗口大小以二為底的對(duì)數(shù)+24至+31必須包含使用后4個(gè)比特位作為窗口大小以二為底的對(duì)數(shù)。+40至+47自動(dòng)使用后4個(gè)比特位作為窗口大小以二為底的對(duì)數(shù)
bufsize是表示緩沖區(qū)初始大小,默認(rèn)為DEF_MEM_LEVEL,由于在解壓過(guò)程中會(huì)自動(dòng)調(diào)節(jié),故不必完全精確。
例如:
x=b'abcdefghijk'*100
x0=compress(x,0)
x1=compress(x,1)
x9=compress(x,9)
print(len(x),len(x0),len(x1),len(x9))
110011113229#無(wú)壓縮時(shí)得到的數(shù)據(jù)比原始數(shù)據(jù)還大
d1=decompress(x9)#解壓縮
d1==x
True
compressobj和decompressobj分別返回一個(gè)壓縮對(duì)象和解壓對(duì)象。compressobj返回一個(gè)壓縮對(duì)象,用來(lái)壓縮內(nèi)存中難以容下的數(shù)據(jù)流,聲明如下
compressobj(level=-1,method=DEFLATED,wbits=MAX_WBITS,memLevel=DEF_MEM_LEVEL,strategy=Z_DEFAULT_STRATEGY[,zdict])
其中l(wèi)evel為壓縮級(jí)別,和前文一樣取值為-1到9;method表示壓縮算法,現(xiàn)在只支持DEFLATED;memLevel指定內(nèi)部壓縮操作時(shí)所占用內(nèi)存大小。參數(shù)取1到9,默認(rèn)DEF_MEM_LEVEL,取值越大越占內(nèi)存,但速度更快。
wbits和decompress中相似,但取值范圍更少,默認(rèn)是15(MAX_WBITS)。
參數(shù)范圍如下:
+9至+15窗口大小以二為底的對(duì)數(shù)。即這些值對(duì)應(yīng)著512至32768的窗口大小。更大的值會(huì)提供更好的壓縮,同時(shí)內(nèi)存開(kāi)銷(xiāo)也會(huì)更大。壓縮輸出會(huì)包含zlib特定格式的頭部和尾部。9至15絕對(duì)值為窗口大小以二為底的對(duì)數(shù)。壓縮輸出僅包含壓縮數(shù)據(jù),沒(méi)有頭部和尾部。+25至+31后4個(gè)比特位為窗口大小以二為底的對(duì)數(shù)。壓縮輸出包含一個(gè)基本的gzip頭部,并以校驗(yàn)和為尾部。
strategy用于調(diào)節(jié)壓縮算法,默認(rèn)即可。zdict指定預(yù)定義的壓縮字典。是一個(gè)字節(jié)序列,其中包含用戶(hù)認(rèn)為要壓縮的數(shù)據(jù)中可能頻繁出現(xiàn)的子序列。頻率高的子序列應(yīng)當(dāng)放在字典的尾部。
除了壓縮和解壓縮,zlib還提供了兩個(gè)數(shù)據(jù)校驗(yàn)的函數(shù),
函數(shù)算法zlib.adler32Adler-32校驗(yàn)zlib.crc32CRC(循環(huán)冗余)校驗(yàn)
二者均輸入數(shù)據(jù)和校驗(yàn)起始值,校驗(yàn)起始值value默認(rèn)為1。這兩個(gè)函數(shù)僅為驗(yàn)證數(shù)據(jù)的正確性,均無(wú)加密強(qiáng)度,不適合做密碼。
zlib.adler32(b'abcdefghijk')
434701411
zlib.crc32(b'abcdefghijk')
3461812127
python中zlib庫(kù)用法
zlib主要用于壓縮與解壓縮
字符串:使用press可以壓縮字符串。使用zlib.decompress可以解壓字符串。數(shù)據(jù)流:壓縮:compressobj,解壓:decompressobj
示例代碼:
importzlib
data='abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz'\
'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz'
print(len(data))
print(data)
compressed_data=press(data.encode())#注意:這兒要以字節(jié)的形式傳入
print(len(compressed_data))
print(compressed_d
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年心理學(xué)相關(guān)職業(yè)資格考試試題及答案
- 2025年臨床醫(yī)學(xué)執(zhí)業(yè)醫(yī)師考試試卷及答案
- 2025年公共關(guān)系專(zhuān)業(yè)資格考試試卷及答案
- 2025年核工程與核技術(shù)試卷及答案
- 2025年廣電網(wǎng)絡(luò)工程師考試試題及答案
- 中考物理考點(diǎn)沖刺15【聲音的綜合】(含答案)
- 網(wǎng)紅旅游景點(diǎn)加盟品牌授權(quán)協(xié)議
- 橋梁工程臨時(shí)檢測(cè)員崗位規(guī)范與聘用合同
- 會(huì)所品牌形象維護(hù)與提升補(bǔ)充協(xié)議
- 兒童娛樂(lè)活動(dòng)策劃臨時(shí)執(zhí)行專(zhuān)員聘用合同
- 《西廂記》完整版本
- DISC性格與能力測(cè)試題及答案解析
- 2024年巴黎奧運(yùn)會(huì)課件
- 校長(zhǎng)思政課課件-百年奧運(yùn)
- 2024至2030年中國(guó)高速AOI市場(chǎng)占有率調(diào)查及投資價(jià)值評(píng)估報(bào)告
- 諫逐客書(shū)-同步練習(xí) 高一下學(xué)期語(yǔ)文文言文閱讀 (統(tǒng)編版必修下冊(cè))
- 汽車(chē)保養(yǎng)與洗車(chē)行業(yè)并購(gòu)與重組研究
- 履帶吊安拆裝施工工藝技術(shù)標(biāo)準(zhǔn)
- DL-T-1878-2018燃煤電廠儲(chǔ)煤場(chǎng)盤(pán)點(diǎn)導(dǎo)則
- 銀行業(yè)宏觀經(jīng)濟(jì)分析報(bào)告
- DL-T796-2012風(fēng)力發(fā)電場(chǎng)安全規(guī)程
評(píng)論
0/150
提交評(píng)論