返回顶部
首页 > 资讯 > 后端开发 > Python >Python 解压缩文件详解
  • 277
分享到

Python 解压缩文件详解

解压缩详解文件 2023-01-31 06:01:48 277人浏览 薄情痞子

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

摘要

zipfile模块及相关方法介绍: 1 压缩 1.1 创建zipfile对象 zipfile.ZipFile(file, mode='r', compression=0, allowZip64=True, compresslevel=Non

zipfile模块及相关方法介绍:

1 压缩

1.1 创建zipfile对象

zipfile.ZipFile(file, mode='r', compression=0, allowZip64=True, compresslevel=None)

创建Zipfile对象,主要参数:

1>file压缩包名称;
2>mode:读'r'或者写'w'模式;
3>compression:设置压缩格式;
4>compresslevel:压缩等级;

压缩格式分类:

格式 说明 对应compresslevel
ZIP_STORED 不压缩 无效
ZIP_DEFLATED 需要zlib支持 0~9
ZIP_BZIP2 需要bz2支持 0~9
ZIP_LZMA 需要lzma支持 无效

1.2 添加压缩文件

zipobj.write(self, filename, arcname=None, compress_type=None, compresslevel=None)

参数说明:

1>fiename:添加文件路径;
2>arcname:归档文件路径与名称;

1.3 添加压缩数据

zipobj.writestr(zinfo_or_arcname, data, compress_type=None, compresslevel=None)

参数说明:

1>zinfo_or_arcname:归档文件名称;
2>data:压缩数据str或者byte,如果数据为str,需要先进行Utf-8编码;

1.4 关闭

关闭压缩文件:

zipobj.close()

1.5 一个例子:

压缩目录如下:
Python 解压缩文件详解

代码实现:

import zipfile
logdir = '/home/linux/logs'
zipname = '/home/linux/logs.zip'
#创建zip对象,
fzip = zipfile.ZipFile(zipname, 'w', zipfile.ZIP_DEFLATED)
#遍历要压缩目录
flist = os.listdir(logdir)
for name in flist:
    fpath = os.path.join(logdir, name)
    #写入要压缩文件
    fzip.write(fpath)
#关闭
fzip.close()

进入目录解压,文件路径如下:
Python 解压缩文件详解
可以看到,我们将整个目录添加到压缩文件中,其实我们更想做的是logs/*.log;
对代码进行修改:

logdir = '/home/linux/logs'
zipname = '/home/linux/logs.zip'
import zipfile
#创建zip对象,
fzip = zipfile.ZipFile(zipname, 'w', zipfile.ZIP_DEFLATED)
#遍历要压缩目录
flist = os.listdir(logdir)
#获取压缩目录名称
basename = os.path.basename(logdir)
for name in flist:
    fpath = os.path.join(logdir, name)
    arcname = os.path.join(basename, name)
    #写入要压缩文件,并添加归档文件名称
    fzip.write(fpath, arcname=arcname)
#关闭
fzip.close()

压缩之后,解压缩内容:
Python 解压缩文件详解
这个才是我们想要的。

2.获取压缩包信息

打开压缩包:
frzip = zipfile.ZipFile(zipname, 'r', zipfile.ZIP_DEFLATED):只读方式打开;

frzip.printdir(),显示压缩包文件信息

File Name                                             Modified             Size
logs/1003.log                                  2019-04-09 10:00:10           17
logs/1001.log                                  2019-04-09 10:00:06           17
logs/1004.log                                  2019-04-09 10:00:12           17
logs/1002.log                                  2019-04-09 10:00:08           17
logs/1000.log                                  2019-04-09 10:00:04           17

frzip.filelist:记录压缩包文件信息,与printdir类似,内容如下:

[<ZipInfo filename='logs/1003.log' compress_type=deflate filemode='-rw-r--r--' file_size=17 compress_size=17>,
 <ZipInfo filename='logs/1001.log' compress_type=deflate filemode='-rw-r--r--' file_size=17 compress_size=17>,
 <ZipInfo filename='logs/1004.log' compress_type=deflate filemode='-rw-r--r--' file_size=17 compress_size=17>,
 <ZipInfo filename='logs/1002.log' compress_type=deflate filemode='-rw-r--r--' file_size=17 compress_size=17>,
 <ZipInfo filename='logs/1000.log' compress_type=deflate filemode='-rw-r--r--' file_size=17 compress_size=17>]

frzip.getinfo(name):获取指定arcname的信息:

frzip.getinfo('logs/1003.log')
#输出结果:
<ZipInfo filename='logs/1003.log' compress_type=deflate filemode='-rw-r--r--' file_size=17 compress_size=17>

frzip.namelist():获取压缩文件列表

['logs/1003.log',
 'logs/1001.log',
 'logs/1004.log',
 'logs/1002.log',
 'logs/1000.log']

3 解压压缩包

frzip.extract(member, path=None, pwd=None):解压缩一个文件到指定目录;
参数:
member:压缩包中文件;
path:解压缩到指定目录,默认解压到当前目录;

frzip.extractall(path=None, members=None, pwd=None):解压缩多个文件到指定目录;
参数:
path:指定的解压目录;
members:指定解压文件,默认解压全部;

解压指定文件到指定目录:

#可以自己定义路径
zipname = '/home/linux/logs.zip'
extractpath =  '/home/linux/1'
#注意压缩格式选择
frzip = zipfile.ZipFile(zipname, 'r', zipfile.ZIP_DEFLATED)
extractfile = frzip.namelist()
if len(extractfile):
    extname = extractfile[0]
    print('extract file:', extname)
    frzip.extract(extractfile[0], extractpath)
frzip.close()

输出结果:extract file: logs/1003.log,在extractpath目录下有log文件;

使用frzip.extractall将所有文件解压到指定目录:

#可以自己定义路径
zipname = '/home/linux/logs.zip'
extractpath =  '/home/linux/1'
#注意压缩格式选择
frzip = zipfile.ZipFile(zipname, 'r', zipfile.ZIP_DEFLATED)
#将所有文件加压缩到指定目录
frzip.extractall(extractpath)
frzip.close()

除了zipfile还有其它模块:
import gzip;
import tarfile;
这些模块使用方式都类似,后面文章中我们在详解讲解。

--结束END--

本文标题: Python 解压缩文件详解

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

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

猜你喜欢
  • Python 解压缩文件详解
    zipfile模块及相关方法介绍: 1 压缩 1.1 创建zipfile对象 zipfile.ZipFile(file, mode='r', compression=0, allowZip64=True, compresslevel=Non...
    99+
    2023-01-31
    解压缩 详解 文件
  • 详解Linux解压缩文件
    gzip 压缩:gzip -v 文件(夹)        eg: gzip -v b.log    ----> b...
    99+
    2022-06-04
    linux 解压缩文件
  • Python文件的压缩与解压
    目录前言:1、压缩整个文件夹2、压缩指定扩展名文件3、获取指定类型的待压缩文件列表4、解压文件前言: Python在人工智能,后台服务等领域中得到了广泛应用。由于python有着大量...
    99+
    2024-04-02
  • Python压缩/解压gzip大文件
    Code tells all:#encoding=utf-8 #author: walker #date: 2015-10-26 #summary: 测试gzip压缩/解压文件 import gzip    BufSize = 1024*...
    99+
    2023-01-31
    大文件 Python gzip
  • 【linux】tar指令压缩解压缩文件夹、文件命令详解
    1. tar常用命令: 压缩当前目录下文件夹/文件test到test.tar.gz: tar -zcvf test.tar.gz test 解压缩当前目录下的file.tar.gz到file: tar...
    99+
    2023-08-31
    linux 服务器 运维 压缩tar
  • Java压缩文件操作详解
    目录一、题目描述-压缩文本文件1、题目2、解题思路3、代码详解二、题目描述-压缩文件解压到指定文件夹1、题目2、解题思路3、代码详解三、题目描述-压缩所有子文件夹1、题目2、解题思路...
    99+
    2022-11-13
    Java 压缩文件夹 Java压缩文件操作 Java压缩文件
  • Java压缩与解压缩ZIP文件
    文章目录 前言Java解压缩文件压缩和解压缩ZIP文件检验应用总结 前言 在现代计算机上,数据传输和存储越来越依赖于文件压缩技术。当我们需要发送大量数据时,压缩文件可以大大减少传输时间...
    99+
    2023-09-11
    java zip 压缩文件 解压缩文件 ZipOutputStream
  • Python压缩解压缩zip文件及破解zip文件密码的方法
    python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。 例如,在py脚本所在目录中,有如下文件: readability/readability.js readability...
    99+
    2022-06-04
    文件 解压缩 密码
  • 基于Python实现文件的压缩与解压缩
    目录zip文件tar.gz文件rar文件7z文件在日常工作中,除了会涉及到使用Python处理文本文件,有时候还会涉及对压缩文件的处理。 通常会涉及到的压缩文件格式有: rar:W...
    99+
    2024-04-02
  • golang中tar压缩和解压文件详情
    目录1、压缩并输出tar.gz文档 2、tar解压缩 查看官方文档,官方自带的演示: // 官方演示 package main import ( "archive/t...
    99+
    2024-04-02
  • linux压缩文件和文件解压缩命令介绍
    目录常见压缩格式:gz .bz2 .xz .zip常用归档调用压缩压缩比及压缩速度:gzip命令:压缩查看压缩文件:gunzip命令:解压bzip2:命令压缩查看压缩文件bunzip2命令:解压xz命令:压缩查看压缩文件...
    99+
    2022-06-04
    linux压缩文件 linux文件解压
  • 怎样用Python解压缩*.tgz文件
    怎样用Python解压缩*.tgz文件 KnightPython:正如*大熊*所说,使用tarfile模块即可:import tarfiletarobj = tarfile.open("my_backup_file.tgz", "r:gz...
    99+
    2023-01-31
    解压缩 文件 Python
  • python解压缩文件怎么实现
    可以使用Python中的zipfile模块来解压缩文件。下面是一个简单的示例代码: import zipfile def unzi...
    99+
    2024-03-06
    python
  • Python压缩文件
    1. 标准库中的压缩模块 在我们常用的系统windows和Linux系统中有很多支持的压缩包格式,包括但不限于以下种类:rar、zip、tar,以下的标准库的作用就是用于压缩解压缩其中一些格式的压缩包。 2. zipfile zipfile...
    99+
    2023-10-20
    开发语言 python
  • Linux文件压缩和解压缩的命令
    本篇内容介绍了“Linux文件压缩和解压缩的命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、tar:tar命令:tar [选项...]...
    99+
    2023-06-13
  • Python怎么批量解压和压缩文件夹
    这篇文章主要介绍“Python怎么批量解压和压缩文件夹”,在日常操作中,相信很多人在Python怎么批量解压和压缩文件夹问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么批量解压和压缩文件夹”的疑...
    99+
    2023-06-29
  • c语言压缩文件详细讲解
    目录c语言压缩文件一、单文件压缩二、多文件压缩三、多文件异步压缩四、压缩文件夹c语言压缩文件 话说当今压缩市场三足鼎立,能叫上名号的有zip、rar、7z。其中zip是压缩界的鼻祖,...
    99+
    2024-04-02
  • C#使用SharpZipLib压缩解压文件
    一、介绍 SharpZipLib是一个完全由C#编写的ZIP,GZIP,Tar和BZIP2 Library,可以方便的支持这几种格式的压缩和解压缩。 https://github.c...
    99+
    2024-04-02
  • Linux怎么解压、压缩gz文件
    这篇文章主要介绍“Linux怎么解压、压缩gz文件”,在日常操作中,相信很多人在Linux怎么解压、压缩gz文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux怎么解压、压缩gz文件”的疑惑有所帮助!...
    99+
    2023-06-28
  • Android如何实现压缩和解压缩文件
    废话不多说了,直接给大家贴java代码了,具体代码如下所示: Java代码 package com.maidong.utils; import java.io.Buffe...
    99+
    2022-06-06
    压缩 解压 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作