天天看點

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 #擷取檔案名字