# -*- 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 #获取文件名字