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

 

分类:

技术点:

相关文章: