如何使用Python对文件进行压缩与解压缩

2023-11-11

前言
我们在日常工作中,除了会涉及到使用Python处理文本文件,有时候还会涉及对压缩文件的处理。

在这里插入图片描述

通常会涉及到的压缩文件格式有:

•rar:Windows 环境下用的比较多的压缩,比较著名的GUI工具是winrar

•tar: Linux系统下的打包工具,只打包,不压缩

•gz:即gzip,通常只能压缩一个文件。与tar结合起来就可以实现先打包,再压缩。

•tgz:即gz。先用tar打包,然后再用gz压缩得到的文件

•zip:不同于gzip,虽然使用相似的算法,可以打包压缩多个文件,不过分别压缩文件,压缩率低于tar

•7z:7zip压缩软件支持的格式,压缩效率较高。

当然除了使用Python外,你还可以选择使用压缩解压缩软件或命令手动进行处理。

zip文件

在这里插入图片描述

zipfile是Python里用来做zip格式编码的压缩和解压缩的module,zipfile里有两个非常重要的class:ZipFile和ZipInfo。ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息。

示例代码:

Python学习交流Q群:906715085###
import os
import zipfile

#压缩def make_zip(source_dir, output_filename):   
 zipf = zipfile.ZipFile(output_filename, 'w')    
 pre_len = len(os.path.dirname
 (source_dir))    
 for parent, dirnames, filenames in
  os.walk(source_dir):        
  for filename in filenames:            
  print(filename)            
  pathfile = os.path.join(parent, filename)           
   arcname = pathfile[pre_len:].strip(os.path.sep)  # 相对路径            
   zipf.write(pathfile, arcname)        
   print()    
   zipf.close()

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

如何使用Python对文件进行压缩与解压缩 的相关文章

  • numba 函数何时编译?

    我正在研究这个例子 http numba pydata org numba doc 0 15 1 examples html multi threading http numba pydata org numba doc 0 15 1 ex
  • 围绕 readline 构建的 python 批处理的触发器选项卡完成

    背景 我有一个 python 程序 它导入并使用 readline 模块来构建自制的命令行界面 我有第二个 python 程序 围绕 Bottle 一个 Web 微框架构建 充当该 CLI 的前端 第二个 python 程序向第一个程序打开
  • 使用 python 进行串行数据记录

    Intro 我需要编写一个小程序来实时读取串行数据并将其写入文本文件 我在读取数据方面取得了一些进展 但尚未成功地将这些信息存储在新文件中 这是我的代码 from future import print function import se
  • 我怎样才能更多地了解Python的内部原理? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我使用Python编程已经有半年多了 我对Python内部更感兴趣 而不是使用Python开发应用程序
  • python 中的代表

    我实现了这个简短的示例来尝试演示一个简单的委托模式 我的问题是 这看起来我已经理解了委托吗 class Handler def init self parent None self parent parent def Handle self
  • Argparse nargs="+" 正在吃位置参数

    这是我的解析器配置的一小部分 parser add argument infile help The file to be imported type argparse FileType r default sys stdin parser
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 如何计算numpy数组中元素的频率?

    我有一个 3 D numpy 数组 其中包含重复的元素 counterTraj shape 13530 1 1 例如 counterTraj 包含这样的元素 我只显示了几个元素 array 136 129 130 103 102 101 我
  • 在Python中调整图像大小

    我有一张尺寸为 288 352 的图像 我想将其大小调整为 160 240 我尝试了以下代码 im imread abc png img im resize 160 240 Image ANTIALIAS 但它给出了一个错误TypeErro
  • 更改 `base_compiledir` 以将编译后的文件保存在另一个目录中

    theano base compiledir指编译后的文件存放的目录 有没有办法可以永久设置theano base compiledir到不同的位置 也许通过修改一些内部 Theano 文件的内容 http deeplearning net
  • python suds SOAP 请求中的名称空间前缀错误

    我使用 python suds 来实现客户端 并且在发送的 SOAP 标头中得到了错误的命名空间前缀 用于定义由element ref 在 wsdl 中 wsdl 正在引用数据类型 xsd 文件 请参见下文 问题出在函数上GetRecord
  • 在 Pandas 中使用正则表达式的多种模式

    我是Python编程的初学者 我正在探索正则表达式 我正在尝试从 描述 列中提取一个单词 数据库名称 我无法给出多个正则表达式模式 请参阅下面的描述和代码 描述 Summary AD1 Low free DATA space in data
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • 如何为每个屏幕添加自己的 .py 和 .kv 文件?

    我想为每个屏幕都有一个单独的 py 和 kv 文件 应通过 main py main kv 中的 ScreenManager 选择屏幕 设计应从文件 screen X kv 加载 类等应从文件 screen X py 加载 Screens
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • 字典和数组作为类变量与实例变量

    这是赚取积分的简单方法 请解释以下内容 class C a b 0 c def init self self x def d self k v self x k v self a k v self b v self c append v d
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default

随机推荐

  • HTML介绍以及常用代码

    HTML 网页基础 html Hyper Text Markup Language 超文本标 记语言 发明者 Tim Berners lee html主要是定义网页内容和结构的 html是编 写网页的语言 html只能运行在浏览器上面 网页
  • 目标检测中如何定义正负样本,和正负样本在学习过程中loss计算起的作用

    如何定义正负样本 和正负样本在学习过程中loss计算起的作用 正负样本定义 分类和回归head如何学习和利用划分后的正负样本 loss如何计算 正负样本在分类中loss计算的处理 正样本在bbox 回归中的loss计算 在目标检测中 经常说
  • 攻防世界-Morse

    1 下载文件打开得到如下01代码 很明显可以看出是摩斯编码 2 使用摩斯编码解码 得到如下结果 3 根据题目提示我们可以得到flag为cyberpeace morsecodeissointeresting
  • angular4表单—模板式表单

    今天我们继续学习angular4表单的内容 表单是系统中都不可或缺的一部分 所以在angular中提供了表单模块 表单的内容分为以下几个部分 模板表单 模板表单的验证 响应式表单 响应式表单的验证 所以我们也是通过一个小的Demo来一步步完
  • 重做日志缓冲区优化

    2008 05 05skate 重做日志缓冲区优化 学习目标 监视和确定重做日志缓冲区的大小 1 重做日志缓冲区的内容 A 对于每个dml或ddl语句 oracle服务器进程都会用户内存空间的重做条目复制到重做日志缓冲区上 B 重做条目包含
  • 【Python】鲸鱼算法实现

    文章目录 鲸鱼算法 自编代码 结果 摘录代码 鲸鱼算法 自编代码 main py import numpy as np from numpy import random from copy import deepcopy from func
  • pdf裁剪

    1 单独页面的 就一页 1 编辑 2 裁剪 3 画框 最好少留空白 4 双击框 之后出现这个页面 勾选自定义 之后确定就行了 5 导出 内嵌的就是eps 文件 导出到 6 如果导出图像 点设置 设置一下分辨率 2 如果是多页面 1 也是先按
  • 正大国际期货:期货市场的交易原则

    期货交易市场是金融市场的一个重要分支 它是以标准化合约为基础的交易市场 在这个市场中 交易双方约定未来某一时间点的价格和交割方式 进行交易和投资 对于期货交易市场的投资者来说 有一些重要的交易原则需要遵守 下面是正大Hgones认为的一些需
  • 指标体系建设的一些思考

    指标体系是什么 收集企业内部业务动作产生的数据 使用统计分析方法 产出一系列能够对业务过程进行表达的数据指标 例如 DAU GMV 通过这些数据指标 企业上层能够快速了解企业经营现状 并进行业务决策 数据指标的合集就是指标体系 指标体系核心
  • 解决:return _compile(pattern, flags).search(string) TypeError: expected string or buffer

    今天写爬虫 爬取MM图片页面的标题时 遇到了一个问题 上图 看看我的代码 1 import urllib 2 import urllib2 3 import re 4 5 class JPMSG 6 7 def init self base
  • 全栈式部署:SpringCloud 微服务+Docker + Vue + nginx 前后端一站式部署

    markdown body line height 1 75 font weight 400 font size 16px overflow x hidden color rgba 51 51 51 1 markdown body h1 m
  • blender中旋转问题(A绕B的中心旋转)

    如果想要以正方体为中心进行对球体进行旋转 应该shift选中这两个物体 并将正方体选为父级 按下ctrl p 发现中心点变成了正方体 这时候对球体进行旋转 发现是围绕着正方体旋转 就完成了 旋转正方体 发现球体跟着正方体旋转 但我想要正方体
  • 卷积神经网络——为了毕设

    CNN笔记 通俗理解卷积神经网络 v JULY v的博客 CSDN博客 卷积神经网络通俗理解 卷积神经网络 输入层 卷积层 激活函数 池化层 全连接层 yjl9122的博客 CSDN博客 卷积神经网络输入层 CNN 卷积 对图像 不同的数据
  • 跨页面通信postMessage和onmessage

    简介 通常 对于两个不同页面的 只有当它们位于同协议 同域名 同端口时 才可以通信 而window postMessage 方法可以安全地实现跨源通信 语法 发送 otherWindow postMessage message target
  • c++虚函数有几个虚表

    怕自己忘记了 所以复制一下 尊重他人版权 http blog csdn net haoel article details 1948051 前言 C 中的虚函数的作用主要是实现了多态的机制 关于多态 简而言之就是用父类型别的指针指向其子类的
  • VUE项目开发的完整流程

    文章目录 一 VUE环境搭建 二 创建VUE项目 1 外部终端创建 2 IDea内部终端创建 3 项目介绍 4 vue 的特别之处 三 添加前端开发插件依赖 四 前端开发流程 1 创建组件与编码 2 配置组件路由 3 运行 五 前后端交互
  • S参数仿真如何添加Mask

    S参数仿真如何添加Mask 对于高速信号的仿真 一般Spec中均会对Return loss Insertion Loss提出对应的模板要求 这些模板要求多数都是通过公式进行约束 如GMSL2中对于回损的要求 这种公式约束的S参数模板 可通过
  • 数据挖掘入门指南!!!

    Datawhale 作者 王瑞楠 吴忠强 徐韬 田杨军 摘要 入门数据挖掘 必须理论结合实践 本文梳理了数据挖掘知识体系 帮助大家了解和提升在实际场景中的数据分析 特征工程 建模调参和模型融合等技能 数据分析 探索性数据分析 Explora
  • Scratch角色的绘制与中心点

    将鼠标移动到界面右下角的角色栏 可以选择 绘制一个角色 点击绘制 左侧会进入造型界面 现在来绘制一个圆形 点击左侧的圆 然后在画布上按住鼠标左键进行绘制 按下点即为圆心 默认是绘制椭圆 可以按住shift来绘制正圆 上方可以调整圆的填充和轮
  • 如何使用Python对文件进行压缩与解压缩

    前言 我们在日常工作中 除了会涉及到使用Python处理文本文件 有时候还会涉及对压缩文件的处理 通常会涉及到的压缩文件格式有 rar Windows 环境下用的比较多的压缩 比较著名的GUI工具是winrar tar Linux系统下的打