zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要使用这两个class就可以了。ZipFile是主要的类,用来创建和读取zip文件而ZipInfo是存储的zip文件的每个文件的信息的
zipfile的用法
压缩:
>>> import zipfile
>>> z=zipfile.ZipFile("laxi.zip","w")
>>> z.write("a.log")
>>> z.write("f1.log")
>>> z.write("f2.log")
>>> z.close()
解缩:
>>> z=zipfile.ZipFile("laxi.zip","r")
>>> z.extractall()
>>> z.close()
解压到指定的文件夹中,如果文件夹不存在,则新建
>>> exampleZip=zipfile.ZipFile("a.zip")
>>> exampleZip.extractall("/home/ubuntu/Test")
>>> exampleZip.close()
>>> import zipfile
>>> z=zipfile.ZipFile("a.zip",'r')
>>> for i in z.infolist():
... print(i.filename,i.file_size, i.header_offset)
filename:文件名称
file_size:文件大小
header_offset:文件数据在压缩包中的偏移
>>> z=zipfile.ZipFile("a.zip")
>>> z.extract("a.java") -------------------------->查看压缩包中指定文件所在的绝对路径
'/home/ubuntu/test/a.java'
tarfile的用法
压缩:
>>> import tarfile
>>> tar=tarfile.open("your.tar","w")
>>> tar.add("/home/gerrit/python_script/f1.log",arcname="f1.log")
>>> tar.add("/home/gerrit/python_script/f2.log",arcname="f2.log")
>>> tar.close()
解压:
>>> import tarfile
>>> tar=tarfile.open("your.tar","r")
>>> tar.extractall()
>>> tar.close()
从上面的案例可以看出:zipfile和tarfile的解压方法都是调用的extractall()方法,但是zipfile的压缩是彩用write()方法将文件写入到压缩包中,tarfile的压缩是彩用add()方法将文件添加到压缩包中,这样看zipfile好像还比tarfile简单一点,你觉得呢!