广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中zipfile压缩包模块的使用
  • 786
分享到

Python中zipfile压缩包模块的使用

Pythonzipfile 2022-06-02 22:06:45 786人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

简介 ZIP 文件格式是一个常用的归档与压缩标准,zipfile 模块提供了创建、读取、写入、添加及列出 ZIP 文件的工具 此模块目前不能处理分卷 ZIP 文件,支持解密 ZIP 归档中的加密文件,但是目前不能创建

简介

ZIP 文件格式是一个常用的归档与压缩标准,zipfile 模块提供了创建、读取、写入、添加及列出 ZIP 文件的工具

此模块目前不能处理分卷 ZIP 文件,支持解密 ZIP 归档中的加密文件,但是目前不能创建一个加密的文件。解密非常慢,因为它是使用原生 python 而不是 C 实现的

压缩文件

class zipfile.ZipFile(file, mode='r', compression=ZIP_STORED, allowZip64=True, compresslevel=None, *, strict_timestamps=True):ZipFile 对象,compression指定压缩模式

ZipFile.write(filename, arcname=None, compress_type=None, compresslevel=None):写入压缩文件,filename为原文件名,arcname为存档文件名,compress_type指定压缩模式

压缩模式 含义
ZIP_STORED 不压缩,默认值
ZIP_DEFLATED 常用的 ZIP 压缩
ZIP_BZIP2 BZIP2 压缩
ZIP_LZMA LZMA 压缩


import random
import zipfile

with open('1.txt', mode='w') as f:
    for _ in range(1000):
        f.write(str(random.random()) + '\n')

with zipfile.ZipFile('1.zip', mode='w', compression=zipfile.ZIP_DEFLATED) as zf:
    zf.write('1.txt')
    zf.write('1.txt', '2.txt', zipfile.ZIP_STORED)  # 原文件名1.txt,存为2.txt,不压缩

效果

在这里插入图片描述

解压文件

ZipFile.namelist():返回按名称排序的文件列表

ZipFile.extract(member, path=None, pwd=None):解压文件到指定目录


import zipfile

with zipfile.ZipFile('1.zip') as zf:
    for filename in zf.namelist():
        zf.extract(filename, '.')

是否ZIP文件

调用 zipfile.is_zipfile(filename)

是一个有效的 ZIP 文件返回 True,否则返回 False,压根不存在返回 False


import zipfile

for filename in ['1.txt', '1.zip', '2.zip']:
    print(filename, zipfile.is_zipfile(filename))
    # 1.txt False
    # 1.zip True
    # 2.zip False

读取元数据

ZipFile.namelist():返回按名称排序的文件列表

ZipFile.infolist():返回ZipInfo对象 列表

ZipFile.getinfo(name):返回一个 ZipInfo对象


import zipfile

with zipfile.ZipFile('1.zip', 'r') as zf:
    print(zf.namelist())  # 文件列表

    for info in zf.infolist():
        print(info)
        print(info.filename)  # 文件名称
        print(info.date_time)  # 修改时间,可用datetime.datetime(*info.date_time)
        print(info.compress_type)  # 压缩类型,值为zipfile.ZIP_STORED、ZIP_DEFLATED、ZIP_BZIP2、ZIP_LZMA
        print(info.comment)  # 注释
        print(info.extra)  # 扩展字段数据
        print(info.create_system)  # 创建所用系统,0为windows,3为Unix
        print(info.create_version)  # 创建所用PKZIP版本
        print(info.extract_version)  # 提取所用PKZIP版本
        print(info.flag_bits)  # 标志位
        print(info.volume)  # 文件头的分卷号
        print(info.compress_size)  # 已压缩的数据大小
        print(info.file_size)  # 未压缩的数据大小
        print()

从其他数据源压缩文件

ZipFile.writestr(zinfo_or_arcname, data, compress_type=None, compresslevel=None):将一个文件写入压缩文件


import random
import zipfile

data = ''.join([str(random.random()) + '\n' for i in range(1000)])

with zipfile.ZipFile('1.zip', mode='w', compression=zipfile.ZIP_DEFLATED) as zf:
    zf.writestr('1.txt', data)

写入ZipInfo

class zipfile.ZipInfo(filename='NoName', date_time=(1980, 1, 1, 0, 0, 0)):压缩文件成员信息类


import time
import random
import zipfile

data = ''.join([str(random.random()) + '\n' for i in range(1000)])

with zipfile.ZipFile('1.zip', mode='w', compression=zipfile.ZIP_DEFLATED) as zf:
    info = zipfile.ZipInfo('1.txt', date_time=time.localtime(time.time()))
    info.compress_type = zipfile.ZIP_DEFLATED
    info.comment = b'a comment'
    info.create_system = 0
    zf.writestr(info, data)

效果

在这里插入图片描述

追加文件

ZipFilemode 改为追加模式 a


import random
import zipfile

with open('2.txt', mode='w') as f:
    for _ in range(1000):
        f.write(str(random.random()) + '\n')

with zipfile.ZipFile('1.zip', mode='a') as zf:
    zf.write('2.txt')

创建包含Python库的ZIP

class zipfile.PyZipFile(file, mode='r', compression=ZIP_STORED, allowZip64=True, optimize=-1):用于创建包含 Python 库的 ZIP 类

zipfile_pyzipfile.py


import sys
import zipfile

with zipfile.PyZipFile('pyzipfile.zip', mode='w') as zf:
    zf.debug = 3
    zf.writepy('.')
for name in zf.namelist():
    print(name)

sys.path.insert(0, 'pyzipfile.zip')
import zipfile_pyzipfile

print('Imported from:', zipfile_pyzipfile.__file__)

参考文献

zipfile — Python文档

zipfile — PyMOTW 3

到此这篇关于Python中zipfile压缩包模块的使用的文章就介绍到这了,更多相关Python zipfile内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python中zipfile压缩包模块的使用

本文链接: https://www.lsjlt.com/news/10649.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中zipfile压缩包模块的使用
    简介 ZIP 文件格式是一个常用的归档与压缩标准,zipfile 模块提供了创建、读取、写入、添加及列出 ZIP 文件的工具 此模块目前不能处理分卷 ZIP 文件,支持解密 ZIP 归档中的加密文件,但是目前不能创建...
    99+
    2022-06-02
    Python zipfile
  • 关于Python中zipfile压缩包模块的使用
    目录简介解压文件是否ZIP文件读取元数据从其他数据源压缩文件写入ZipInfo追加文件创建包含Python库的ZIP简介 ZIP 文件格式是一个常用的归档与压缩标准,zipfile&...
    99+
    2023-05-15
    Python zipfile Python 压缩包模块 zipfile压缩包模块
  • Python中的zipfile压缩包模块如何使用
    这篇文章主要介绍“Python中的zipfile压缩包模块如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的zipfile压缩包模块如何使用”文章能帮助大家解决问题。简介ZIP ...
    99+
    2023-07-06
  • 如何在Python中使用zipfile压缩包模块
    这期内容当中小编将会给大家带来有关如何在Python中使用zipfile压缩包模块,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。简介ZIP 文件格式是一个常用的归档与压缩标准,zipfile 模块提供了创...
    99+
    2023-06-15
  • Python压缩包处理模块zipfile和py7zr怎么使用
    这篇“Python压缩包处理模块zipfile和py7zr怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python...
    99+
    2023-07-02
  • python标准库压缩包模块zipfile和tarfile怎么使用
    这篇文章主要介绍“python标准库压缩包模块zipfile和tarfile怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python标准库压缩包模块zipfile和tarfile怎么使用”...
    99+
    2023-07-02
  • Python压缩包处理模块zipfile和py7zr操作代码
    目录一:zipfile的常用操作1,压缩文件2,解压缩文件3,列出压缩包里的所有文件 4,其他常用的方法 二:py7zr的常用操作 1,压缩文件2,解压...
    99+
    2022-11-13
  • python标准库压缩包模块zipfile和tarfile详解(常用标准库)
    目录常用的标准库zip格式ZipFile参数说明操作含义压缩方法常用方法tar包 和 gz、bz2、xz格式删除压缩包中的文件常用的标准库 在我们常用的系统windows和Linux...
    99+
    2022-11-11
  • python压缩和解压缩模块之zlib的用法
    目录python压缩和解压缩模块之zlibpython中zlib库用法zlib主要用于压缩与解压缩python压缩和解压缩模块之zlib 由于早期的zlib和Python之间不兼容,...
    99+
    2022-11-11
  • Python模块中Zipfile的作用是什么
    今天就跟大家聊聊有关Python模块中Zipfile的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在这里对zipfile的使用方法做一些记录。即方便自己也方便别人。zip...
    99+
    2023-06-17
  • Python实现批量压缩文件/文件夹zipfile的使用
    目录【Python压缩文件夹】导入“zipfile”模块【python压缩文件】导入“zipfile”模块补充zipfile是python里用来做zip格式编码的压缩和解压缩的,由于...
    99+
    2022-11-12
  • Python 标准库zipfile将文件夹加入压缩包的操作方法
    zipfile模块是python中一个处理压缩文件的模块,解决了不少我们平常需要处理压缩文件的需求。大家还知道Python zipfile 库可用于压缩/解压 zip 文件. 本文介...
    99+
    2022-11-12
  • Python 中ZipFile模块的功能是什么
    Python 中ZipFile模块的功能是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python ZipFile模块用来做zip格式编码的压缩和解压缩的...
    99+
    2023-06-17
  • Python标准库之zipfile和tarfile模块的使用
    目录zip格式ZipFile参数说明操作含义压缩方法常用方法tar包 和 gz、bz2、xz格式操作tar包压缩解压缩删除压缩包中的文件在我们常用的系统windows和Linux系统...
    99+
    2022-11-11
  • 如何在python中使用zipfile模块操作文件
    这篇文章将为大家详细讲解有关如何在python中使用zipfile模块操作文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python有哪些常用库python常用的库:1.requesut...
    99+
    2023-06-14
  • python用模块zlib压缩与解压字符串和文件的方法
    python中zlib模块是用来压缩或者解压缩数据,以便保存和传输。它是其他压缩工具的基础。下面来一起看看python用模块zlib压缩与解压字符串和文件的方法。话不多说,直接来看示例代码。 例子1:压缩与...
    99+
    2022-06-04
    字符串 模块 文件
  • Node.js 使用 zlib 内置模块进行 gzip 压缩
    目录前言什么是gzip?gzip和zlib什么关系?普通数据传输gzip压缩数据传输结语前言 任何服务端开发都少不了性能优化的操作,在前后端使用HTTP接口(API)进行数据传递时,...
    99+
    2022-11-13
  • Node.js | 使用 zlib 内置模块进行 gzip 压缩
    🖥️ NodeJS专栏:Node.js从入门到精通 🖥️ 博主的前端之路:前端之行,任重道远(来自大三学长的万字自述) 🧧 加入社区领红包:海底烧烤店ai(从前端到全栈) 🧑‍💼个人简介:即将大三的学生,一个不甘平庸的平凡人🍬 👉 你的...
    99+
    2023-08-20
    node.js 服务器 前端 gzip 性能优化
  • 用python批量解压带密码的压缩包
    目录项目地址:环境需求用法 Usage参数 Parameters完整代码项目地址: https://github.com/Mario-Hero/toolUnRar 环境需求 Windows系统 Py...
    99+
    2022-06-02
    python 解压压缩包 python 批量解压压缩包 python 解压密码压缩包
  • 使用python怎么批量解压带密码的压缩包
    今天就跟大家聊聊有关使用python怎么批量解压带密码的压缩包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。环境需求Windows系统Python 3对于解压RAR文件,需要安装Wi...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作