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模块 ...
随机推荐
- Javascript高级编程学习笔记(93)—— Canvas(10) 模式及图像数据
模式 模式其实就是重复的图像,用来填充或描边图形 要创建一个新模式,可以调用 createPattern()并传入两个参数 一个HTML img元素 用于表示如何重复的字符串 "repeat ...
- [Swift]LeetCode526. 优美的排列 | Beautiful Arrangement
Suppose you have N integers from 1 to N. We define a beautiful arrangement as an array that is const ...
- [Swift]LeetCode827. 最大人工岛 | Making A Large Island
In a 2D grid of 0s and 1s, we change at most one 0 to a 1. After, what is the size of the largest is ...
- Android 普通通知栏新方法,现在需要创建通知渠道才可以
先看看效果看看是不是你想要的 点击后 话不多所,贴代码 xml文件: <?xml version="1.0" encoding="utf-8"?>& ...
- ASP.NET Core Web API 与 SSL
SSL 一直没有真正研究过SSL,不知道下面的理解是否正确. SSL是Secure Sockets Layer的缩写,它用来保护服务器和客户端之前的通信.它是基于信任+加密的概念. 在介绍SSL的原理 ...
- 【Spark篇】--Spark中的宽窄依赖和Stage的划分
一.前述 RDD之间有一系列的依赖关系,依赖关系又分为窄依赖和宽依赖. Spark中的Stage其实就是一组并行的任务,任务是一个个的task . 二.具体细节 窄依赖 父RDD和子RDD parti ...
- 【Docker】(4)搭建私有镜像仓库
[Docker](4)搭建私有镜像仓库 说明 1. 这里是通过阿里云,搭建Docker私有镜像仓库. 2. 这里打包的镜像是从官网拉下来的,并不是自己项目创建的新镜像,主要测试功能 一.搭建过程 首先 ...
- SpringCloud(8)---zuul权限校验、接口限流
zuul权限校验.接口限流 一.权限校验搭建 正常项目开发时,权限校验可以考虑JWT和springSecurity结合进行权限校验,这个后期会总结,这里做个基于ZuulFilter过滤器进行一个简单的 ...
- Jquery.ajax dataType参数
dataType 类型:String 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML.在 1.4 ...
- .NET Core脚本工具dotnet-script
什么是dotnet-script "dotnet-script"是github上一个开源的.net core global tool, 项目地址https://github.com ...