python模块--zipfile文件压缩
zipfile模块是python中一个处理压缩文件的模块,解决了不少我们平常需要处理压缩文件的需求 ,本文主要谈谈zipfile几个常用的用法。
首先我在Windows操作系统中创建如下的文件目录:

一、读取压缩文件:
代码:
import zipfile
import os
# 压缩文件路径
zip_file_path = r'F:\压缩文件zipfile\zipfile_dir.zip'
# 压缩文件目录路径
zip_dir = r'F:\压缩文件zipfile\zipfile_dir'
# 打开压缩文件
zip_files = zipfile.ZipFile(zip_file_path,mode='r')
# 获取zip压缩文件的相关信息
for content in zip_files.infolist():
print(content)
# 遍历zip压缩文件的文件名称
for name in zip_files.namelist():
print(name)
# 记得要像读取file那样关闭文件句柄
zip_files.close()

压缩文件的名称、压缩算法和大小等信息
<ZipInfo filename='zipfile_dir/test1.txt' compress_type=deflate external_attr=0x20 file_size=2918 compress_size=1591>
<ZipInfo filename='zipfile_dir/test2.txt' compress_type=deflate external_attr=0x20 file_size=2918 compress_size=1591>
<ZipInfo filename='zipfile_dir/' external_attr=0x10>
压缩文件目录下所有文件的名称
zipfile_dir/test1.txt
zipfile_dir/test2.txt
zipfile_dir/
二、往zip目录中添加文件
代码:
# 在指定zip压缩文件目录下创建zip文件
create_zip_file = zipfile.ZipFile(zip_file_path, mode='a', compression=zipfile.ZIP_DEFLATED)
new_file_path = os.path.join(zip_dir,r'README.txt')
# 将文件夹中的文件拷贝进zip目录
file_name = 'README.txt'
create_zip_file.write(new_file_path,file_name)
create_zip_file.close()
注意:加入zip目录的文件本身在文件夹中已经存在,否则zipfile模块搜索路径是无法找到的。
添加成功:

三、解压文件:
zipfile提供的压缩方法有:
ZIP_STORED,ZIP_DEFLATED, ZIP_BZIP2和ZIP_LZMA
ZIP_STOREED:只是作为一种存储,实际上并未压缩
ZIP_DEFLATED:用的是gzip压缩算法
ZIP_BZIP2:用的是bzip2压缩算法
ZIP_LZMA:用的是lzma压缩算法
gzip和bzip2压缩算法的区别:
使用 gzip要比bzip2快,但是bzip2会获得比 gzip更高的压缩率,即bzip压缩后的压缩文件跟小。
更多关于这几种算法的区别可以看这两篇篇文章:
https://www.cnblogs.com/kuang17/p/7193124.html
https://blog.csdn.net/leilonghao/article/details/73200859
代码:
# 解压后文件放置的目录
unzip_dir = r'F:\tk_demo_test'
# 解压前文件的zip目录
zip_file2_path = r'F:\tk_demo.zip'
unzip_files = zipfile.ZipFile(zip_file2_path,mode='r',compression=zipfile.ZIP_DEFLATED)
unzip_files.extractall(unzip_dir)
unzip_files.close()
解压成功:

参考文章:
https://www.cnblogs.com/kuang17/p/7193124.html
https://blog.csdn.net/leilonghao/article/details/73200859
更多内容,请参考官方文档:https://docs.python.org/3/library/zipfile.html#zipfile.ZIP_STORED
python模块--zipfile文件压缩的更多相关文章
- python zipfile 文件压缩和文件
文件压缩 zipfile_obj = zipfile.ZipFile(zipfile_objpath, 'a', zipfile.ZIP_DEFLATED) for dirpath, dirnames ...
- Python模块File文件操作
Python模块File简介 Python提供了File模块进行文件的操作,他是Python的内置模块.我们在使用File模块的时候,必须先用Popen()函数打开一个文件,在使用结束需要close关 ...
- python学习shutil模块的文件压缩和解压用法
shutil模块可以创建压缩包并返回文件路径,例如 zip,tar,下面详细其用法 base_name 压缩包的文件名,也可以是压缩包的路径,只是文件名时,则保存至当前目录,否则保存指定路径 data ...
- python使用zipfile递归压缩和解压缩文件
import shutil,zipfile,os class ToolModel(object): def dfs_get_zip_file(self,input_path, result, igno ...
- os模块、文件压缩 、匹配文件后缀名:fnmatch glob
一.os模块 os模块:是python是系统交互的模块 import os # 0平台信息的一些操作 python是夸平台的,所以内部兼容了不同的平台 1. os.name # 操作系统 nt是win ...
- python模块 zipfile
zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的zipfile里有两个非常重要的class, 分别是ZipFile和Zip ...
- python模块目录文件后续
1,新增PythonModule加载path Ruiy tip(关于python list[]数据库类型特殊你懂的!append(""),extend([""] ...
- Java 多个文件压缩下载
有时候会有多个附件一起下载的需求,这个时候最好就是打包下载了 首先下面这段代码是正常的单个下载 public void Download(@RequestParam("file_path&q ...
- Python __init__.py 文件使用
__init__.py的主要作用是: 1. Python中package的标识,不能删除 2. 定义__all__用来模糊导入 3. 编写Python代码(不建议在__init__中写python模块 ...
随机推荐
- [Swift]LeetCode224. 基本计算器 | Basic Calculator
Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...
- 浮点型和BigDecimal的使用
//import java.math.*; package cn.xiaomu_01_rumrnjieduan; import java.math.BigDecimal; /** * 浮点型和BigD ...
- Map 转换成byte[] 数组
把Map转换成byte数组,使用 ByteArrayOutputStream和ObjectOutputStream Map<String,String> map = new HashMap ...
- 关闭mac的SIP + 一定有用的删除mac自带ABC的方法
如果你被这ABC输入法弄得很是不开心.那就看看吧!!!亲测一定有效. mac 关闭系统完整性保护 SIP(System Integrity Protection) 重启系统 按住 command+R ...
- CSS,JavaScript知识点
1.css重用 <style> 如果整个页面的宽度 > 900px时: { . ...
- 【从零开始自制CPU之学习篇04】电容
电解电容: 多数在1μF以上,直接用数字表示.如:4.7μF.100μF.220μF等等.这种电容的两极有正负之分,长脚是正极. 独石电容: 独石电容器是多层陶瓷电容器的别称, 简称MLCC 读数方法 ...
- MVC中Model元数据及绑定机制
ASP.NET MVC的Model为View Model,表示最终呈现在View上的数据,而Model元数据的一个重要的作用在于控制对象在View上的呈现方式.说得更加具体点,就是基于某种数据类型的M ...
- Chapter 4 Invitations——22
"Are you going all by yourself?" he asked, and I couldn't tell if he was suspicious I had ...
- Linux服务器时间相关命令记录
前言 以往安装服务器时间都是正常,但是最近服务器的时间经常出现问题,所以在安装配置完成服务器之后需要对服务器的时间进行测试,如果服务器时间异常,那么当程序去取系统时间的时候就会出现问题. 时间相关命令 ...
- dbcontext实例创建问题
dbcontext初始化 Private DemoContext db=new DemoContext (): 问题:什么时候释放db对象? 使用Using()方法中创建,每次调用会造成频繁的连接关闭 ...