一、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壓縮。