ZipFile模块
一、任务描述
本实验任务主要对ZipFile模块进行一些基本操作,通过完成本实验任务,要求学生熟练掌握zipFile模块,并对ZipFile模块的基本操作进行整理并填写工作任务报告。
二、任务目标
1、掌握ZipFile模块的函数
三、任务环境
Ubuntu16.04、Python2.7
四、任务分析
ZIP文件格式是一个通用的压缩包,本模块主要提供了对这种格式文件进行创建、读取、写入、增加和读取文件列表。本模块不支持多卷压缩的功能,普通的ZIP文件只能4G大小,如果想使用更大的文件要使用ZIP64扩展方式。本模块支持打开有加密的压缩包文件,但不支持创建加密的压缩包文件,并且解密的速度比C语言的方式实现要慢。
五、任务实施
步骤1、环境准备
右击Ubuntu操作系统桌面,从弹出菜单中选择【Open in Terminal】命令 打开终端。
通过【cd /home】切换到home目录下。【ls】查看该目录下的所有内容。
【mkdir zip】在home目录下创建zip文件夹。
步骤2、压缩文件夹
【cd soft/zipresourse】切换目录,【ll】查看要压缩的文件夹下的所有内容。
【cd /home/zip】切换到zip目录下,【vim zip1.py】回车后创建并编辑名为zip1的Python文件
回车后进入编辑框内,按键盘【i】进入编辑状态,编译如下程序。
zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
创建一个ZipFile对象,表示一个zip文件。参数file表示文件的路径或类文件对象(file-like object);参数mode指示打开zip文件的模式,默认值为’r’,表示读已经存在的zip文件,也可以为’w’或’a’,’w’表示新建一个zip文档或覆盖一个已经存在的zip文档,’a’表示将数据附加到一个现存的zip文档中。参数compression表示在写zip文档时使用的压缩方法,它的值可以是zipfile. ZIP_STORED 或zipfile. ZIP_DEFLATED。如果要操作的zip文件大小超过2G,应该将allowZip64设置为True。
os.walk()返回一个三元tupple(dirpath,dirnames,filenames)
其中第一个为起始路径,
第二个为起始路径下的文件夹,
第三个是起始路径下的文件.
dirpath是一个string,代表目录的路径,
dirnames是一个list,包含了dirpath下所有子目录的名字,
filenames是一个list,包含了非目录文件的名字.这些名字不包含路径信息,如果需要得到全路径,需要使用 os.path.join(dirpath, name).
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python zip1.py】执行zip1的Python文件。【ll】发现该文件夹下生成一个myname.zip的压缩包。
步骤3、解压缩
【vim zip2.py】回车后创建并编辑名为zip2的Python文件。
回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。
参数’r’,表示读已经存在的zip文件。
ZipFile.namelist() 获取zip文档内所有文件的名称列表。
ZipFile.extract(member[, path[, pwd]])
将zip文档内的指定文件解压到当前目录。参数member指定要解压的文件名称或对应的ZipInfo对象;参数path指定了解析文件保存的文件夹;参数pwd为解压密码。
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python zip1.py】执行zip1的Python文件。【ll】发现该文件夹下生成一个zipresourse.zip的压缩包。
【cd zipresourse】切换到解压后的zipresourse目录下,【ll】查看该目录下的文件信息。