溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用python怎么實(shí)現(xiàn)一個(gè)壓包功能

發(fā)布時(shí)間:2021-02-18 14:30:17 來源:億速云 閱讀:168 作者:Leah 欄目:開發(fā)技術(shù)

使用python怎么實(shí)現(xiàn)一個(gè)壓包功能?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

1、概念

壓包是解包的逆過程,用zip函數(shù)實(shí)現(xiàn)。

2、方法

(1)zip() 函數(shù)用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的對象(Python3)。

(2)如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長度與最短的對象相同,利用*號操作符,可以將元組解壓為列表。

3、實(shí)例

先是zip函數(shù)將a b壓包成為一個(gè)可迭代對象,對可迭代對象的每一個(gè)元素((‘a(chǎn)', 1))進(jìn)行解包(i, j = (‘a(chǎn)', 1)),此時(shí)就可以分別調(diào)用i j變量進(jìn)行計(jì)算。

>>> a = [0, 1, 2]
>>> b = [1, 2, 3]
>>> for i, j in zip(a, b):
...   print(i+j)
...
1
3
5

知識(shí)點(diǎn)擴(kuò)展

1.Python--gzip壓縮ZIP文件:

import gzip
f_src = open("data.txt", "rb") #打開文件
f_tar= gzip.open("data.txt.gz", "wb")#創(chuàng)建壓縮文件對象
f_tar.writelines(f_src)
f_tar.close()
f_src.close()
import gzip 
g = gzip.GzipFile(filename="", mode="wb", compresslevel=9, fileobj=open('sitemap.log.gz', 'wb'))
g.write(open('d:\\test\\sitemap.xml').read())
g.close()

其中,filename參數(shù)是壓縮文件內(nèi)文件的名字,為空也可以,不修改。fileobj是生成的壓縮文件對象,它的路徑名稱等。最后是把文件寫入gzip文件中去,再關(guān)閉操作連接。

2.Python--gzip解壓ZIP文件:

import gzip
f = gzip.open("data.txt.gz", 'rb')    #打開壓縮文件對象
f_out=open("data.txt","w")        #打開解壓后內(nèi)容保存的文件
file_content = f.read()          #讀取解壓后文件內(nèi)容
f_out.write(file_content.decode("utf-8")) #寫入新文件當(dāng)中
print(file_content)            #打印讀取內(nèi)容
f.close()
f_out.close()
g = gzip.GzipFile(mode="rb", fileobj=open('d:\\test\\sitemap.log.gz', 'rb'))
open(r"d:\\haha.xml", "wb").write(g.read())

使用的時(shí)候注意,函數(shù)方法的大小寫一點(diǎn)要看仔細(xì),如果gzip文件是這種形式的:*.tar.gz,證明先是由tar命令壓縮后,后再由 gzip壓縮的,需要先用解壓縮tar文件,再用gzip模塊解壓縮。其實(shí),現(xiàn)在很多網(wǎng)頁為了提高瀏覽器端用戶的訪問速度,和搜索引擎爬蟲抓取的速度,都在使用gzip壓縮。

關(guān)于使用python怎么實(shí)現(xiàn)一個(gè)壓包功能問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI