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

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

  你可能熟悉 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. Mac 远程 屏幕共享 screen sharing

    ​ 屏幕共享可以用于在局域网中控制另一台 Mac,也能通过 iMessage 在广域网环境下创建彼此的连接,用来指导和解决问题非常方便. 通过 Apple ID 来创建连接 1,Command+空格键 ...

  2. (app笔记)Memory Fill内存填充

    Memory Fill 是实现app内存填充工具(运行内存,物理内存,网络空间内存) Used:已用内存 filled:未回收内存 Free:自由内存 1.Ram(Total Ram):手机运行内存 ...

  3. pyqt5中文教程

    本文转载自:http://code.py40.com/pyqt5/ 一.PyQt5基本功能 简单的例子 PyQt5是一种高级的语言,下面只有几行代码就能显示一个小窗口.底层已经实现了窗口的基本功能. ...

  4. requests学习笔记01

    一.发送请示 # 导入 Requests 模块 import requests # 获取某个网页 r = requests.get("http://www.baidu.com") ...

  5. java传递参数调用python完成剪切多个视频最终拼接成一个

    需求如题,综合考虑之后我选择python去做视频处理,最终结果也让我非常满意. 我是windows 环境,安装的python3.8和moviepy模块 第一步:安装python3.8 第二步:修改py ...

  6. docker之rabbitmq delayed message exchange

    创建dockerfile FROM rabbitmq:3.9.11-management-alpine COPY rabbitmq_delayed_message_exchange-3.9.0.ez ...

  7. SpringBoot Circular view path错误

    在运行SpringBoot时报了这样一个错误 百度翻译是视图循环 搜索一下 原来是类上restcontroller写成了controller  对比一下两者 @Controller和@RestCont ...

  8. kumquat

    今天准备做个解释型编程语言,名字就叫kumquat(金桔)因为我刚刚喝了口金桔柠檬茶,挺甜的 用python写把

  9. Pytorch实战学习(六):基础CNN

    <PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili Basic Convolution Neural Network 1.全连接网络 线性层串行-全连接网络 每一个输入和输 ...

  10. sentinel监控数据持久化&本地测试

    官方文档  https://sentinelguard.io/zh-cn/ wiki: 在生产环境中使用-Sentinel 推荐方案:持久化到 时序数据库InfluxDB  : 结合Grafana 可 ...