gzip和zipfile模块

# -*- 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
', 'xiaodeng
', '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 #获取文件名字
原文地址:https://www.cnblogs.com/dengyg200891/p/4932827.html