# -*- coding: utf-8 -*- #python 27 #xiaodeng #gzip和zipfile模块 #http://www.open-open.com/lib/view/open1398334415312.html import gzip #1、创建gzip文件 content='I am is a gzip file' #写入gzip中的txt文件中的内容。 f=gzip.open('filename.txt.gz','w')#也可以写成filename.gz,但是没有明确指出压缩包中文件的格式 f.write(content) f.close() #2、解压gzip文件示例 import gzip f=gzip.open('filename.txt.gz','r') content=f.read() print content f.close() #3、gzip压缩现有文件 import gzip f=open('out.txt','r') f_gzip=gzip.open('filegzip.txt.gz','w') f_gzip.writelines(f)#一行一行的写入 f_gzip.close() f.close() #4、GzipFile,打开一个压缩文件对象。 g=gzip.GzipFile(r'filegzip.txt.gz') print g.read() #将指针回到第一个位置 g.seek(0) print g.readlines()#['xiaodeng\n', 'xiaodeng\n', 'xiaodeng'] #5、压缩多个文件为zip/gz文件 import zipfile f=zipfile.ZipFile('result.gz','w')#result.gz或result.zip均可 #写入 f.write('1.txt') f.write('2.txt') f.write('3.txt') f.close() #6、zipfile的方法 #1)判断一个文件是否为压缩文件? print zipfile.is_zipfile('result.gz')#True #2)返回文件列表 f=zipfile.ZipFile('result.gz','r') print f.namelist()#['1.txt', '2.txt', '3.txt'] #3)返回ZipInfo对象,只不过一个返回的是列表 f=zipfile.ZipFile('result.gz','r')# f:压缩包对象 ZipInfo= f.infolist() print ZipInfo #[<zipfile.ZipInfo object at 0x01BDEFA0>, <zipfile.ZipInfo object at 0x01C7C030>, <zipfile.ZipInfo object at 0x01C7C098>] #4)遍历压缩包中的每个文件 for files in f.namelist(): print files ''' 1.txt 2.txt 3.txt ''' #5)解压全部文件到指定目录 r'c:\\',两个斜杠,有一个为转义符 #f.extractall(r'c:\\') #6)解压指定文件名的文件到指定目录 r'c:\\',两个斜杠,有一个为转义符 f.extract('1.txt',r'c:\\') #7)将zip文档的内部信息打印到控制台上。 f.printdir() ''' File Name Modified Size 1.txt 2015-11-03 12:25:16 28 2.txt 2015-11-03 12:25:16 28 3.txt 2015-11-03 12:25:16 28 ''' #8)设置zip文档的密码,经测试没效果??。。。 pwd='222222' f.setpassword(pwd) #9)getinfo方法返回一个ZipInfo对象 f=zipfile.ZipFile('2.zip','r') print f.filename #获取文件名字