iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python压缩包处理模块zipfile和py7zr怎么使用
  • 612
分享到

Python压缩包处理模块zipfile和py7zr怎么使用

2023-07-02 12:07:55 612人浏览 薄情痞子

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

摘要

这篇“python压缩包处理模块zipfile和py7zr怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python

这篇“python压缩包处理模块zipfile和py7zr怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python压缩包处理模块zipfile和py7zr怎么使用”文章吧。

一:zipfile的常用操作

1,压缩文件

 zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])

         参数file表示文件的路径;参数mode指示打开zip文件的模式,有三种mode

  • 解压:r

  • 压缩:w

  • 追加压缩:a 

默认值为'r',表示读已经存在的zip文件,也可以为'w'或'a','w'表示新建一个zip文档或覆盖一个已经存在的zip文档,‘a’表示追加压缩

下面我们创建一个压缩文件result.zip,并压缩test文件夹下的所有文件

import zipfileimport os testdir = "D:\\FTZ\\python_tool\\result\\test"filename = "./result.zip"z = zipfile.ZipFile(filename, 'w')  for d in os.listdir(testdir):z.write(d)z.close

当然上面还可以用with的方法打开

import zipfileimport os testdir = "D:\\DPI\\python_tool\\result\\test"filename = "./result.zip"with zipfile.ZipFile(filename, 'w')  as z:for d in os.listdir(testdir):z.write(d)z.close

2,解压缩文件

import zipfileimport os testdir = "D:\\FTZ\\python_tool\\result\\test"filename = "./result.zip"with zipfile.ZipFile(filename, 'r')  as z:z.extractall(testdir)

需要注意的是有些压缩包解压是有密码,这时候调用extractall的时候也支持输入密码,在python3中,解压文件的密码参数 pwd 接收的是二进制的值,所以要在前面加一个 b

z.extractall(testdir,pwd=b"ftz")

3,列出压缩包里的所有文件

import zipfileimport ostestdir = "D:\\DPI\\python_tool\\result\\test"filename = "./result.zip"with zipfile.ZipFile(filename, 'r')  as z:files = z.namelist()print(files)

运行结果如下,返回的是一个列表:

Python压缩包处理模块zipfile和py7zr怎么使用

 4,其他常用的方法

import zipfileimport os testdir = "D:\\ftz\\python_tool\\result\\test"filename = "./result.zip"with zipfile.ZipFile(filename, 'r')  as z:z.setpassword(b'ftz1')  #设置zip文档的密码。z.printdir()     #将zip文档内的信息打印到控制台上。data = z.read('file.yaml')  #获取zip文档内指定文件的二进制数据print(data) info = z.getinfo('file.yaml')  #方法返回的是一个ZipInfo对象,表示zip文档中相应文件的信息。它支持如下属性print("获取文件名称:",info.filename)print("获取文件最后修改时间:",info.date_time)print("获取压缩类型:",info.compress_type)print("获取压缩后的大小:",info.compress_size)print("获取未压缩的文件大小:",info.file_size) print("判断是否是压缩文件:",zipfile.is_zipfile(filename))

运行结果如下:

File Name                                             Modified             Size
data_yaml.yaml                                 2022-06-25 10:50:42          198
file.yaml                                      2022-06-25 10:13:46          123
vnfname.txt                                    2022-01-14 11:27:56         9320
b'\xe4\xb8\x80\xe7\xba\xa7\xe6\xa0\x87\xe9\xa2\x98:\n    \xe4\xba\x8c\xe7\xba\xa7\xe6\xa0\x87\xe9\xa2\x981:\n        b:1\n        c:2\n        a:3\n    \xe4\xba\x8c\xe7\xba\xa7\xe6\xa0\x87\xe9\xa2\x982:\n        f:7\n        t:8\n        z:9'
获取文件名称: file.yaml
获取文件最后修改时间: (2022, 6, 25, 10, 13, 46)
获取压缩类型: 0
获取压缩后的大小: 123
获取未压缩的文件大小: 123
判断是否是压缩文件: True
[Finished in 0.2s]

当然getinfo也支持其他的属性,下面给出比较全的属性和方法

ZipInfo.filename: 获取文件名称。

ZipInfo.date_time: 获取文件最后修改时间。返回一个包含6个元素的元组:(年, 月, 日, 时, 分, 秒)

ZipInfo.compress_type: 压缩类型。

ZipInfo.comment: 文档说明。

ZipInfo.extr: 扩展项数据。

ZipInfo.create_system: 获取创建该zip文档的系统。

ZipInfo.create_version: 获取 创建zip文档的PKZIP版本。

ZipInfo.extract_version: 获取 解压zip文档所需的PKZIP版本。

ZipInfo.reserved: 预留字段,当前实现总是返回0。

ZipInfo.flag_bits: zip标志位。

ZipInfo.volume: 文件头的卷标。

ZipInfo.internal_attr: 内部属性。

ZipInfo.external_attr: 外部属性。

ZipInfo.header_offset: 文件头偏移位。

ZipInfo.CRC: 未压缩文件的CRC-32。

ZipInfo.compress_size: 获取压缩后的大小。

ZipInfo.file_size: 获取未压缩的文件大小。

 二:py7zr的常用操作

 1,压缩文件

import py7zr with py7zr.SevenZipFile('target.7z', 'w') as arcHive:    archive.writeall('/path/to/base_dir', 'base')

如果想设置密码压缩

import py7zr with py7zr.SevenZipFile('target.7z', 'w', passWord='secret') as archive:    archive.writeall('/path/to/base_dir', 'base')

2,解压缩文件

import py7zr archive = py7zr.SevenZipFile('sample.7z', mode='r')archive.extractall(path="/tmp")archive.close()

也支持with模式

import py7zr with py7zr.SevenZipFile('sample.7z', mode='r') as z:    z.extractall() with py7zr.SevenZipFile('target.7z', 'w') as z:    z.writeall('./base_dir')

py7z也支持提取某个文件或者符合正则匹配的文件

import py7zrimport re filter_pattern = re.compile(r'<your/target/file_and_directories/regex/expression>')with SevenZipFile('archive.7z', 'r') as archive:    allfiles = archive.getnames()    selective_files = [f for f in allfiles if filter_pattern.match(f)]    archive.extract(targets=selective_files)

支持解压缩加密的7z文件

import py7zr with py7zr.SevenZipFile('encrypted.7z', mode='r', password='secret') as z:    z.extractall()

以上就是关于“Python压缩包处理模块zipfile和py7zr怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

--结束END--

本文标题: Python压缩包处理模块zipfile和py7zr怎么使用

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

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

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

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

下载Word文档
猜你喜欢
  • Python压缩包处理模块zipfile和py7zr怎么使用
    这篇“Python压缩包处理模块zipfile和py7zr怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python...
    99+
    2023-07-02
  • Python压缩包处理模块zipfile和py7zr操作代码
    目录一:zipfile的常用操作1,压缩文件2,解压缩文件3,列出压缩包里的所有文件 4,其他常用的方法 二:py7zr的常用操作 1,压缩文件2,解压...
    99+
    2022-11-13
  • Python中zipfile压缩包模块的使用
    简介 ZIP 文件格式是一个常用的归档与压缩标准,zipfile 模块提供了创建、读取、写入、添加及列出 ZIP 文件的工具 此模块目前不能处理分卷 ZIP 文件,支持解密 ZIP 归档中的加密文件,但是目前不能创建...
    99+
    2022-06-02
    Python zipfile
  • python标准库压缩包模块zipfile和tarfile怎么使用
    这篇文章主要介绍“python标准库压缩包模块zipfile和tarfile怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python标准库压缩包模块zipfile和tarfile怎么使用”...
    99+
    2023-07-02
  • 关于Python中zipfile压缩包模块的使用
    目录简介解压文件是否ZIP文件读取元数据从其他数据源压缩文件写入ZipInfo追加文件创建包含Python库的ZIP简介 ZIP 文件格式是一个常用的归档与压缩标准,zipfile&...
    99+
    2023-05-15
    Python zipfile Python 压缩包模块 zipfile压缩包模块
  • 如何在Python中使用zipfile压缩包模块
    这期内容当中小编将会给大家带来有关如何在Python中使用zipfile压缩包模块,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。简介ZIP 文件格式是一个常用的归档与压缩标准,zipfile 模块提供了创...
    99+
    2023-06-15
  • Python中的zipfile压缩包模块如何使用
    这篇文章主要介绍“Python中的zipfile压缩包模块如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的zipfile压缩包模块如何使用”文章能帮助大家解决问题。简介ZIP ...
    99+
    2023-07-06
  • python标准库压缩包模块zipfile和tarfile详解(常用标准库)
    目录常用的标准库zip格式ZipFile参数说明操作含义压缩方法常用方法tar包 和 gz、bz2、xz格式删除压缩包中的文件常用的标准库 在我们常用的系统windows和Linux...
    99+
    2022-11-11
  • Python文件处理方法、os模块和glob模块怎么使用
    这篇“Python文件处理方法、os模块和glob模块怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python文件...
    99+
    2023-06-30
  • 怎么搞懂Python模块、包的区别和使用
    怎么搞懂Python模块、包的区别和使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、模块和包的定义模块的定义:任何*.py 的文件都可以当作模块使用imp...
    99+
    2023-06-04
  • Python文件路径处理模块pathlib怎么使用
    这篇文章主要介绍了Python文件路径处理模块pathlib怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python文件路径处理模块pathlib怎么使用文章都会有所收获,下面我们一起来看看吧。1. ...
    99+
    2023-07-05
  • 怎么在python中使用scipy.io模块处理mat数据
    今天就跟大家聊聊有关怎么在python中使用scipy.io模块处理mat数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python有哪些常用库python常用的库:1.requ...
    99+
    2023-06-14
  • Python Excel数据处理之xlrd/xlwt/xlutils模块怎么使用
    常规的Excel数据处理中,就是对Excel数据文件的读/写/文件对象操作。通过对应的python非标准库xlrd/xlwt/xlutils,来实现具体的数据处理业务逻辑。在复杂的Excel业务数据处理中,三兄弟扮演的角色缺一不可。今天我们...
    99+
    2023-05-17
    Python Excel xlutils
  • 怎么在python中使用time模块处理系统时间
    怎么在python中使用time模块处理系统时间?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C#...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作