python处理压缩文件

2023-11-11

Zip

模块安装

pip install zipfile

使用

import zipfile

# 打开zip文件
zipfileObj = zipfile.ZipFile("./tmp.zip")

# with上下文
with zipfile.ZipFile("./tmp.zip") as zipfileObj:
	pass

常用方法

ZipFile类

  1. ZipFile.close(): 关闭文件,结束时必须要有
  2. ZipFile.getinfo(name): 获取zip文档内指定文件的信息。返回一个zipfile.ZipInfo对象,它包括文件的详细信息。
  3. ZipFile.infolist(): 获取zip文档内所有文件的信息,返回一个zipfile.ZipInfo的列表。
  4. ZipFile.namelist(): 获取zip文档内所有文件的名称列表。
  5. ZipFile.extract(member[, path[, pwd]]):将zip文档内的指定文件解压到当前目录。
  6. ZipFile.extractall([path[, members[, pwd]]]): 解压zip文档中的所有文件到当前目录。
  7. ZipFile.printdir(): 将zip文档内的信息打印到控制台上。
  8. ZipFile.setpassword(pwd): 设置zip文档的密码,这个方法我用的时候不好使,暂时没找到问题所在,建议要加密码使用 Python调用linux系统命令加密,或者调用windows里安装的压缩软件加密。
  9. ZipFile.read(name[, pwd]): 获取zip文档内指定文件的二进制数据。
  10. ZipFile.write(filename[, arcname[, compress_type]]):将指定文件添加到zip文档中。
  11. ZipFile.writestr(zinfo_or_arcname, bytes): writestr()支持将二进制数据直接写入到压缩文档。

ZipInfo 类

  1. ZipInfo.filename: 获取文件名称。
  2. ZipInfo.date_time: 获取文件最后修改时间。返回一个包含6个元素的元组:(年, 月, 日, 时, 分, 秒)
  3. ZipInfo.compress_type: 压缩类型。
  4. ZipInfo.comment: 文档说明。
  5. ZipInfo.extr: 扩展项数据。
  6. ZipInfo.create_system: 获取创建该zip文档的系统。
  7. ZipInfo.create_version: 获取 创建zip文档的PKZIP版本。
  8. ZipInfo.extract_version: 获取 解压zip文档所需的PKZIP版本。
  9. ZipInfo.reserved: 预留字段,当前实现总是返回0。
  10. ZipInfo.flag_bits: zip标志位。
  11. ZipInfo.volume: 文件头的卷标。
  12. ZipInfo.internal_attr: 内部属性。
  13. ZipInfo.external_attr: 外部属性。
  14. ZipInfo.header_offset: 文件头偏移位。
  15. ZipInfo.CRC: 未压缩文件的CRC-32。
  16. ZipInfo.compress_size: 获取压缩后的大小。
  17. ZipInfo.file_size: 获取未压缩的文件大小。

Gzip

gzip读取文件:

import gzip
with gzip.open('file.txt.gz', 'rb') as f:
    file_content = f.read()

gzip创建文件:

import gzip
content = "Lots of content here"
with gzip.open('file.txt.gz', 'wb') as f:
    f.write(content)

gzip向已存在文件压入数据:

import gzip
import shutil
with open('file.txt', 'rb') as f_in, gzip.open('file.txt.gz', 'wb') as f_out:
    shutil.copyfileobj(f_in, f_out)

tar.gz

使用

import tarfile

# with上下文
with tarfile.open() as tar:
	pass

常用方法

  1. is_tarfile()可以用来判断文件是否是tarfile支持的文件格式
  2. list()列出文件列表并在stdout显示
  3. getmembers()可以用来获取成员列表,返回TarInfo实例组成的一个列表,每个TarInfo实例可以查看其name,size,mtime等属性。
  4. getnames()可以用来从压缩包中读取文件名,返回文件名组成的文件清单。
  5. getmember()生成一个TarInfo实例子(获取一个成员的信息)
  6. extract()用来提取单个文件,输入文件名称和解压后的路径。
  7. extractall()用来提取所有文件,传入解压后的路径,不需要传入文件名称。
  8. extractfile()用来解压单个文件,输入文件名称,不需要输入解压后的路径,因为生成的是个文件实例,并不是直接解压文件。
此时要以写的方式打开
tarfile.open(name='logo.tar',mode='w')

add()方法添加要压缩的文件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python处理压缩文件 的相关文章

随机推荐

  • C++ 类成员指针

    1 成员指针简介 成员指针是C 引入的一种新机制 它的申明方式和使用方式都与一般的指针有所不同 成员指针分为成员函数指针和数据成员指针 2 成员函数指针 在事件驱动和多线程应用中被广泛用于调用回调函数 在多线程应用中 每个线程都通过指向成员
  • IIS错误页面隐藏版本信息 - Web.Config customErrors配置

    目录 背景 分析暴露原因 解决办法 扩展学习customErrors使用方法 customErrors元素配置结构 元素属性 Mod 属性选项 示例 参考文章 背景 项目现按照国网的要求 测试后发现系统错误页面存在服务器版本号泄露 不允许部
  • Java Servlet的主要功能和作用是什么?

    Servlet 通过创建一个框架来扩展服务器的能力 以提供在 Web 上进行请求和响应服务 当客户机发送请求至服务器时 服务器可以将请求信息发送给 Servlet 并让 Servlet 建立起服务器返回给客户机的响应 当启动 Web 服务器
  • Kali Linux 2020.1修改Root用户密码

    背景信息 多年以来 Kali从BackTrack继承了默认的root用户策略 作为对Kali工具和策略的评估的一部分 因此Kali 决定对此进行更改 并将Kali移至 传统默认非根用户 模型 那如果我们因某些情况想开启Root用户这应该如何
  • facebook stetho Android调试工具

    什么是Stetho 官网简介 Stetho is a debug bridge for Android applications enabling the powerful Chrome Developer Tools and much m
  • 如何利用matlab神经网络进行水量预测

    数据收集 百度搜索EPS数据库登陆 我们选择进入城市数据库 我们的目的是要进行某年水量预测 我们的目的是知道了某一年的土地 人口等信息 就可以预测出该年的用水量 因此我们需要搜集一些信息用来训练 可以多选几年如2003 2017 然后点击下
  • 13 集成测试之自顶向下集成测试方法

    自顶向下集成测试方法 前言 深度优先集成方法 宽度优先集成方法 总结 前言 自顶向下集成方法可以采取深度优先或者宽度优先策略 深度优先集成方法 深度优先从最左边分支自上而下开始测试并向上结合 测试完一个分支后再测试下一个分支 如图测试顺序为
  • 渗压计工作原理及选型

    渗压计适合埋设在水工建筑物和基岩内 或安装在测压管 钻孔 堤坝 管道或压力容器中 以测量孔隙水压力或液位 主要部件均采用特殊钢材制造 适合在各种恶劣环境中使用 一般型号后缀为标准型 可以为低量程型和为通气 差压 型 另可根据客户要求提供高压
  • Hypertable 简介 一个 C++ 的Bigtable开源实现

    1 Introduction 随着互联网技术的发展 尤其是云计算平台的出现 分布式应用程序需要处理大量的数据 PB级 在一个或多个云计算平台中 成千上万的计算主机 如何保证数据的有效存储和组织 为应用提供高效和可靠的访问接口 并且保持良好的
  • scss中的样式复用:继承;占位符;混合宏

    文章目录 一 使用 extend实现样式复用 继承 二 使用占位符实现样式复用 占位 三 使用混合宏实现样式复用 混合宏 四 参数运算符 待更新 类名复用 未验证 待更新 react中使用sass 了解css in js解决方案 在reac
  • 【Pandas 数据查找函数 详解】

    本文介绍了Pandas数据查找常用函数 掌握了这些函数的应用 让你在数据处理时 手到擒来 游刃有余 目录 一 查找数据位置 s str find 和s str index 函数 二 数据的查找判断 1 判断开头或结尾是否是指定字符串s st
  • 保姆级Obsidian学习教程【超完整,小白必备】

    前言 本篇文章学习视频来源 沙牛obsidian优质课程 学 习 软 件 obsidian 课 程 对 应 资 源 云盘资源 说 明 Obsidian是基于Markdown文件的本地知识管理软件 并且开发者承诺Obsidian对于个人使用者
  • java integer long 转换_long(Long)与int(Integer)之间的转换

    1 将long型转化为int型 这里的long型是基础类型 long a 10 int b int a 2 将Long型转换为int 型的 这里的Long型是包装类型 Long a 10 int b a intValue 3 将Long型转
  • 编译GDB --enable-targets=all --enable-64-bit-bfd

    这次尝试才用一种新的BLOG发帖 大家都可以把要发到BLOG的文章投递到MAILLIST 然后大家REVIEW 等REVIEW的差不离了 再发到BLOG上 欢迎大家帮忙review 编译GDB teawater hellogcc 1 取得源
  • 2.1python中的赋值运算符和比较运算符

    在程序中 使用赋值运算符可以帮助我们更加高效的完成一些需要多行程序完成的工作 使用比较运算符可以让程序员通过比较更加明白所编程序是否与自己的所思考的相同 1 首先 我们先看一下赋值运算符的具体内容 如下 赋值运算符符号 含义 a b b a
  • 微信H5(公众号)跳转微信小程序实现及其传参

    1 使用微信开放标签 wx open launch weapp 跳转
  • Linux车机平台pulseaudio多alsasink配置

    https www freedesktop org wiki Software PulseAudio 官网上的介绍是这样的 pulseaudio 是一个POSIX操作系统上的声音系统 是音频应用的代理 它允许你对音频数据 在从应用传递到硬件
  • Java版企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis

    项目说明 随着公司的快速发展 企业人员和经营规模不断壮大 公司对内部招采管理的提升提出了更高的要求 在企业里建立一个公平 公开 公正的采购环境 最大限度控制采购成本至关重要 符合国家电子招投标法律法规及相关规范 以及审计监督要求 通过电子化
  • 【java】maven引用外部 jar 包,以RXTXcomm.jar为例

    目录 1 作为资源文件夹内的资源引用 2 将jar包手动安装到maven仓库 工具 IntelliJ IDEA 2020 2 3 x64 1 作为资源文件夹内的资源引用 1 在项目根路径新建文件夹lib 将资源文件复制到该文件夹 2 将文件
  • python处理压缩文件

    Zip 模块安装 pip install zipfile 使用 import zipfile 打开zip文件 zipfileObj zipfile ZipFile tmp zip with上下文 with zipfile ZipFile t