随笔记录方便自己和同路人查阅。

#------------------------------------------------我是可耻的分割线-------------------------------------------

  你可能熟悉 ZIP 文件(带有.zip 文件扩展名),它可以包含许多其他文件的压缩内容。压缩一个文件会减少它的大小,这在因特网上传输时很有用。

因为一个 ZIP 文件可以包含多个文件和子文件夹,所以它是一种很方便的方式,将多个文件打包成一个文件。这个文件叫做“归档文件”,然后可以用作电

子邮件的附件,或其他用途。

  利用 zipfile 模块中的函数,Python 程序可以创建和打开(或解压)ZIP 文件。

#------------------------------------------------我是可耻的分割线-------------------------------------------

  1、读取zip文件

  要读取 ZIP 文件的内容,首先必须创建一个 ZipFile 对象(请注意大写首字母 Z和 F)。ZipFile 对象在概念上与 File 对象相似,你可能已经知道open()

函数返回 File 对象:它们是一些值,程序通过它们与文件打交道。要创建一个 ZipFile对象,就调用 zipfile.ZipFile()函数,向它传入一个字符串,表示.zip

文件的文件名。请注意,zipfile 是 Python 模块的名称,ZipFile()是函数的名称。

  ZipFile()函数,读取文件,示例代码:

import zipfile,os
os.chdir('d:\\') # move to the folder with example.zip
#使用zipfile模块的ZipFile()函数,获取ZipFile对象
exampleZip = zipfile.ZipFile('example.zip')
#namelist()函数,获取ZipFile对象的值
print(exampleZip.namelist())

  运行结果:

  因为新建example.zip时,向里面放入了report_data2.txt和spam.txt两个文件,打印ZipFile对象的值后显示这两个文件的名字。

  2、从文件中解压

  ZipFile 对象的 extractall()方法从 ZIP 文件中解压缩所有文件和文件夹,放到当前工作目录中。

import zipfile,os
os.chdir('d:\\')
# 使用zipfile模块的ZipFile()函数,获取ZipFile对象
exampleZip = zipfile.ZipFile('example.zip')
#使用extractall()解压文件
exampleZip.extractall()
#关闭文件
exampleZip.close()

  运行结果:

   extractall()方法如果没有传入值,会默认解压到当前工作目录下,可以给他传递一个path,示例代码:

import zipfile,os
os.chdir('d:\\')
# 使用zipfile模块的ZipFile()函数,获取ZipFile对象
exampleZip = zipfile.ZipFile('example.zip')
#使用extractall()解压文件
exampleZip.extractall('d:\\quiz')
#关闭文件
exampleZip.close()

  运行结果:会吧example.zip文件解压到d:\\quiz文件夹下

  3、创建和添加到zip文件

  要创建你自己的压缩 ZIP 文件,必须以“写模式”打开 ZipFile 对象,即传入'w'作为第二个参数(这类似于向 open()函数传入'w',以写模式打开一个文本文件)。

  如果向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指的文件,将它加到 ZIP 文件中。write()方法的第一个参数是一个字符串,代表要添加的文件名。第二个参数是“压缩类型”参数,它告诉计算机使用怎样的算法来压

缩文件。可以总是将这个值设置为 zipfile.ZIP_DEFLATED(这指定了 deflate 压缩算法,它对各种类型的数据都很有效)。  

import zipfile,os
os.chdir('d:\\')
# 使用zipfile模块的ZipFile()函数,获取ZipFile对象
newZip = zipfile.ZipFile('new.zip', 'w')
newZip.write('spam.txt', compress_type=zipfile.ZIP_DEFLATED)
newZip.close()

  运行结果:

  对在d盘中创建一个new.zip文件,其中包括spam.txt文件。

Python学习笔记组织文件之用zipfile模块压缩文件的更多相关文章

  1. [Python学习笔记]组织文件

    shutil 模块 shutil 模块可以让我们很方便的在Python程序中复制.移动.改名和删除文件. 复制文件和文件夹 使用shutil.copy()来复制文件,该函数含两个参数,均为字符串格式的 ...

  2. Python学习笔记(15)- os\os.path 操作文件

    程序1 编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图: import os def countfile(path): dict1 = {} # 定义一个字典 all_files = ...

  3. python 学习笔记 13 -- 经常使用的时间模块之time

    Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处 ...

  4. Python学习笔记(十四):模块高级

    以Mark Lutz著的<Python学习手册>为教程,每天花1个小时左右时间学习,争取两周完成. --- 写在前面的话 2013-7-23 21:30 学习笔记 1,包导入是把计算机上的 ...

  5. Java学习笔记之I/O流(读取压缩文件以及压缩文件)

    1.读取压缩文件:ZipInputStream 借助ZipFile类的getInputStream方法得到压缩文件的指定项的内容,然后传递给InputStreamReader类的构造方法,返回给Buf ...

  6. Python学习笔记之爬取网页保存到本地文件

     爬虫的操作步骤: 爬虫三步走 爬虫第一步:使用requests获得数据: (request库需要提前安装,通过pip方式,参考之前的博文) 1.导入requests 2.使用requests.get ...

  7. Python学习笔记_从CSV读取数据写入Excel文件中

    本示例特点: 1.读取CSV,写入Excel 2.读取CSV里具体行.具体列,具体行列的值 一.系统环境 1. OS:Win10 64位英文版 2. Python 3.7 3. 使用第三方库:csv. ...

  8. 吴裕雄--天生自然python学习笔记:人脸识别用到的特征文件haarcascade_frontalface_default.xml下载

    下载地址:https://github.com/opencv/opencv/tree/master/data/haarcascades 1.找到haarcascade_frontalface_defa ...

  9. python学习笔记之—— calendar(日历)模块

    内置函数month() #!/usr/bin/python import calendar print calendar.month(2017,12) 输出: December 2017 Mo Tu ...

  10. Python学习笔记:读取Excel的xlrd模块

    一.安装xlrd 可以使用命令行安装也可使用pycharm进行安装 表示xlrd库已经安装成功,安装成功后,我们就可以导入使用了. 二.xlrd说明 (1.单元格常用的数据类型包括 0:empty(空 ...

随机推荐

  1. VUE学习-监听事件

    监听事件 事件处理方法可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码. <div id="app"> <button v ...

  2. pyinstaller打包后运行提示“No module named 'PyQt5' "

    记录遇到的一个很傻的问题 脚本用到了PyQt5模块,安装成功脚本可以正常运行,但是使用pyinstaller 打包后,运行 exe文件提示 No module named 'PyQt5' 原因: 因为 ...

  3. Cisco——ASA和winserver2016配置l2tp over ipsec连接

    Cisco--ASA和winserver2016配置l2tp over ipsec连接 L2tp over ipsec vpn配置 网络拓扑图: 配置vpn时要确保Winserver15能够ping通 ...

  4. mysql常用的查询语句

    好记性不如烂笔头! 查询表中全部信息: select * from 表名 查询表中指定列的信息: select 列1,列2 from 表名 数据去重: select distinct 列... fro ...

  5. RxJava2.x的理解与总结

    RxJava2.x的理解与总结 RxJava是一个基于观察者设计模式将链式编程和异步结合在一起的开源库. 链式编程 通过查看GitHub开源项目的简介开源知道,RxJava有几个基类. 他们分别适用于 ...

  6. C# 类型转换相关

    public void TypeConvert() { int a = 12; double b = 35.5; Console.WriteLine((int)b);//显示类型转换 //使用conv ...

  7. C# Thread.Join()作用

    Thread.Join()在MSDN中的解释:Blocks the calling thread until a thread terminates 阻塞calling thread,直到当前join ...

  8. SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = select list expression not produced by aggregation output (missing from GROUP BY clause?): ......

    SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = select list expression not produced by aggregati ...

  9. 使用Wireshark完成实验3-IP

    1.使用Wireshark打开ip-ethereal-trace-1,如图 电脑IP地址为192.168.1.102 2.如图,IP包头中上层协议字段的值为1,代表为ICMP 3.如图,IP头中有20 ...

  10. vue中require动态加载图片

    <template> <img src="D:/images/01.png" alt="静态加载"> <img :src=&quo ...