python實現壓縮及解壓


一、zipfile實現壓縮及解壓:

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

import zipfile
f = zipfile.ZipFile(target, 'w', zipfile.ZIP_DEFLATED)
f.write(filename, file_url)
f.close()

其中target:是壓縮后要保存的路徑,可以是: 'C:\\temp\\' 或'./test'

ZIP_DEFLATED:表示壓縮,

ZIP_STORE:表示只打包,不壓縮。(這個Linux中的gz跟tar格式有點類似)

write方法:

  如果只有一個參數filename的話,表示把你filename所帶的路徑全部壓縮到zip文件中。

  如果帶兩個參數,表示把filename路徑中的那個file壓縮一下並且存放到file_url中,中間沒有增加任何的文件夾。

  如果要壓縮很多的文件,循環的write每個文件就ok了

最后close掉。

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

f = zipfile.ZipFile(tatgert,'r')
for file in f.namelist(): #f.namelist()返回列表,列表中的元素為壓縮文件中的每個文件
  f.extract(file,"temp/")

target是壓縮文件的路徑
循環訪問該壓縮文件中的文件,並且一個一個file的解壓到對應的"temp\"文件夾中

二、gzip實現壓縮及解壓:

gzip塊主要支持打開對應格式的壓縮文件,並可以完成對壓縮文件的讀出和寫入操作。壓縮文件被打開后,可以使用文件對象一樣的方法,如read、readline、readlines、write、writelines等。

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

import gzip
f_src = open("data.txt", "rb") #打開文件
f_tar= gzip.open("data.txt.gz", "wb")#創建壓縮文件對象
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參數是壓縮文件內文件的名字,為空也可以,不修改。fileobj是生成的壓縮文件對象,它的路徑名稱等。最后是把文件寫入gzip文件中去,再關閉操作連接。

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

import gzip
f = gzip.open("data.txt.gz", 'rb')        #打開壓縮文件對象
f_out=open("data.txt","w")                #打開解壓后內容保存的文件
file_content = f.read()                   #讀取解壓后文件內容
f_out.write(file_content.decode("utf-8")) #寫入新文件當中
print(file_content)                       #打印讀取內容
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())

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM