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

原文地址:https://www.cnblogs.com/rockg/p/11072482.html

时间: 2024-10-28 19:17:01

python实现压缩及解压的相关文章

python zlib 压缩与解压

例子1:压缩与解压字符串 import zlib message = 'abcd1234' compressed = zlib.compress(message) decompressed = zlib.decompress(compressed) print 'original:', repr(message) print 'compressed:', repr(compressed) print 'decompressed:', repr(decompressed) 结果 original:

Python Gzip压缩与解压模块

from  http://www.iplaypython.com/module/gzip.html 一.使用gzip模块压缩文件 >>> import gzip #导入gzip模块,玩蛇网提示:注意名字为全小写 >>> g = gzip.GzipFile(filename="", mode="wb", compresslevel=9, fileobj=open('sitemap.log.gz', 'wb')) >>&g

python学习笔记-Day7(configparser模块、shutil、压缩与解压模块、subprocess)

configparser模块 # configparser用于处理特定格式的文件,其本质上是利用open来操作文件 # 下边我们就创建这种特定格式配置文件,来操作以下这里模块方法 --------------test.conf---------------- [section1] # configparser 会认定以中括号括住的为一个节点(node) k1 = 111 # 节点下,每一行配置文件为键值对存在(也可以写成 k2:123) k2 = v2 k3 = 123 k4 = True k1

Java实现文件压缩与解压[zip格式,gzip格式]

Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例. zip扮演着归档和压缩两个角色:gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩. Java I/O类库还收录了一些能读写压缩格式流的类.要想提供压缩功能,只要把它们包在已有的I/O类的外面就行了.这些类不是Reader和Writer,而是Inpu

模块讲解----shutil模块(copy、压缩、解压)

作用与功能 主要用于文件的copy,压缩,解压 导入shuitl模块: import shutil copy方法 1 1.shutil.copyfileobj()  打开file1,并copy写入file2: 2 with open("笔记1",'r',encoding='utf-8') as f1,open('笔记2','w',encoding='utf-8') as f2: 3    shutil.copyfileobj(f1,f2) 4 5 6 7 #输入文件名就能直接拷贝(调用

linux中常用的压缩、解压命令详解

不管在windows中还是在linux中,我们会经常看到各种压缩的文件,此刻我们需要使用就得解压,在这就介绍介绍linux中解压.压缩的命令. 在做实验之前,我们先创建几个文件,大小都是100M,方便我们更能清晰理解. 一.compress[选项]file(不是太常用,而且tab键还不能补齐) ①compress file 压缩文件,其中我们可以看到compress压缩的文件是.Z结尾的压缩包. ② -d file 解压文件,但压缩文件会丢失,相当于uncompress 在这我们可以看到,不管是

iOS开发中的压缩以及解压

事实上,在iOS开发中,压缩与解压,我都是采用第三方框架SSZipArchive实现的 gitHub地址:   https://github.com/ZipArchive/ZipArchive 上面有详细的使用方法 因为ZipArchive不支持ARC,所以如果你的工程开启了ARC,那么就需要对ZipArchive设置一下.在ZipArchive.mm编译选项中,增加-fno-objc-arc即可. 最后,需要为工程链接libz.dylib动态链接库. 使用示范(压缩): // 获得mainBu

Java的压缩、解压及压缩加密、解密解压 例子

为了节约带宽.加快传送速度,http协议支持gzip的压缩,但如果我们的app与后台不是通过http协议通讯的,那么压缩.解压这个流程需要自己写.下面给出compress和decompress的代码: public static byte[] compress(byte[] data) throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 压缩 GZIPOutputStream gos =

linux 打包、压缩、解压

linux下打包.压缩.解压方法: 方法一: ==打包 # tar cvf 123.tar 目录名   将目录打包为123.tar的文件  打包后并不压缩 c--创建  v--详细  f--文件  x--解压  z---对应***.gz ==压缩 # gzip etc1.tar # bzip2 etc2.tar # xz etc3.tar ==解压 # gzip -d etc1.tar.gz # bzip2 -d etc2.tar.bz2 # xz -d etc3.tar.xz ==解包 # t