Python zip压缩与解压(zipfile模块实例)

发布时间:2019-12-14编辑:脚本学堂
本文介绍下,python编程中对文件进行zip压缩与解压的方法,分享二个python zipfile模块的例子,有需要的朋友快来参考下吧。

python中提供了文件压缩的zipfile模块。

zipfile模块() 用于压缩文件成zip及解压zip文件,模块介绍如下。

zipfile.ZipFile(file, mode) open a ZIP file,where file can be either a path to a file or a file-like object. mode can be read “r” , write “w”, or append “a”以某种模式打开ZIP 文档。

默认值为’r’ 表示读已经存在的zip文件,‘w’ 表示新建一个zip文档或覆盖一个存在的同名zip文档, ‘a’ 表示将数据附加到一个现存的zip文档中。

在 class zipfile.ZipFile中有如下模块:
ZipFile.namelist() return a list of archive members by name. 返回一个列表包含zipfile里面的文件

ZipFile.close() close the archive file。当解压完zip文件以后关闭zipfile.

ZipFile.extractall(self, path=None, members=None, pwd=None) Extract all members from the archive to the current working directory. Path specified a different directory to extract to. Member is optional and must be subset of the list returned by namelist().
解压全部文件到当前路径,也可以加压到指定路径。

ZipFile.extract(self, member, path=None, pwd=None) extract a member from the archive to the current working directory, member must be its full name. 从ZIP文件里解压一个文件到当前路径,该文件必须以全名给定。

ZipFile.setpassword(pwd) set pwd as default password to extract encrypted files. 设置一个默认密码用于解压文件。

ZipFile.write(filename) write the file named filename to the archive. 将文件写入zip文档。
 
例1,压缩文件成zip包
 

复制代码 代码示例:
import zipfile
import sys
import os
filepath = sys.argv[1]
outputpath = sys.argv[2]
os.chdir(filepath)
filelist = os.listdir(filepath) # list the files need to achieve
zipfilename = filepath.split("/")[-1] #fetch the last name of path as zipfile name
ZipFileobj = zipfile.ZipFile(filepath+"/"+ zipfilename +".zip", 'w') #create a zip file
 
for files in filelist:# use “for” to add files into zip file
    ZipFileobj.write(files)
 
ZipFileobj.close()
print "zipfile already created!"

例2,解压zip包
 

复制代码 代码示例:
import zipfile
import sys
 
zipfilepath = sys.argv[1]
outputpath = sys.argv[2]
print zipfilepath
 
zipfiles = zipfile.ZipFile(zipfilepath, "r")
zipfiles.extractall(outputpath)
zipfiles.close()