python zipfile使用

the Python challenge中第6关使用到zipfile模块,于是记录下zipfile的使用

zip日常使用只要是压缩跟解压操作,于是从这里入手

1、压缩

f=zipfile.ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=False)

创建一个zip文件对象,压缩是需要把mode改为‘w’,这个是源码中的注释Open the ZIP file with mode read "r", write "w" or append "a",a为追加压缩,不会清空原来的zip

f.write(filename)

将文件写入zip文件中,即将文件压缩

f.close()

将zip文件对象关闭,与open一样可以使用上下文with as

import zipfile

with zipfile.ZipFile('test.zip', mode='w') as zipf:
   zipf.write('channel.zip')
   zipf.write('zip_test.py')

zipf = zipfile.ZipFile('test.zip')
print zipf.namelist()

 

2、解压

f.extract(directory)和f.exractall(directory)

import zipfile


zipf = zipfile.ZipFile('test.zip')

zipf.extractall('channel1')#将所有文件解压到channel1目录下

 

高级应用 
1 zipfile.is_zipfile(filename) 
判断一个文件是不是压缩文件 
2 ZipFile.namelist() 
返回文件列表 
3 ZipFile.open(name[, mode[, password]]) 
打开压缩文档中的某个文件

 

if zipfile.is_zipfile('test.zip'): #is_zipfile() 判断是否似zip文件
   f = zipfile.ZipFile('test.zip')
   files = f.namelist() #namelist() 返回zip压缩包中的所有文件
   print 'files:', files
   mess = f.open('channel/readme.txt') #打开zip压缩包中的某个文件,可读可写
   print 'mess:', mess.read()
   f.close()

 

posted @ 2017-08-22 23:36  Alummox  阅读(23344)  评论(0编辑  收藏  举报