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()