2022年 11月 4日

python zip压缩_python实现压缩及解压

一、zipfile实现压缩及解压:

1.Python–zipfile压缩ZIP文件:

importzipfile

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文件:

importgzip

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()

importgzip

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文件:

importgzip

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压缩。