iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现rar、zip和7z文件的压缩和解压
  • 845
分享到

Python实现rar、zip和7z文件的压缩和解压

python 2023-09-20 15:09:51 845人浏览 泡泡鱼

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

摘要

一、7z压缩文件的压缩和解压 1、安装py7zr 我们要先安装py7zr第三方库: pip install py7zr 如果python环境有问题,执行上面那一条安装语句老是安装在默认的Python环

一、7z压缩文件的压缩和解压

1、安装py7zr

我们要先安装py7zr第三方库:

pip install py7zr

如果python环境有问题,执行上面那一条安装语句老是安装在默认的Python环境的话,我们可以执行下面这条语句,将第三方库安装在项目的虚拟环境中:

pip install py7zr --target=E:\Python脚本\作业查重\OS_Study\venv\Lib\site-packages

2、解压7z文件

import py7zr# 将压缩文件解压到指定目录def decompress_7z():# 将要解压的压缩文件路径    arcHive = py7zr.SevenZipFile(r'E:\Python脚本\作业查重\20大数据javaweb新闻系统.7z', mode='r')    # 压缩文件的解压目录    archive.extractall(path=r'E:\Python脚本\作业查重\20大数据班JavaWEB新闻系统')    archive.close()

3、压缩成7z文件

import py7zr# 将指定目录压缩到指定压缩文件test.7z'def compression_7z():# 生成的压缩文件路径    archive = py7zr.SevenZipFile(r'E:\Python脚本\作业查重\test.7z', mode='w')    # 需要压缩的压缩文件    archive.writeall(path=r'../test')    archive.close()

二、rar压缩文件的压缩和解压

1、环境准备

我们用到的第三方库为rarfile,因为我们的这个第三方库需要用到第三方程序,所以我们要先配一下环境。

(1)导入unrar模块:

pip install unrar

(2)下载 unrar library 并按照默认安装路径安装,下载链接:下载

(3) 编辑环境变量:

用户变量 -> 变量名:x64 -> 变量值:C:\Program Files (x86)\UnrarDLL\x64 (默认路径是这个)
系统变量 -> 变量名:UNRAR_LIB_PATH -> 变量值:C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll (默认路径)[32位系统下的变量值为C:\Program Files (x86)\UnrarDLL\UnRAR.dll]

(4)安装winrar(360软件中心有):
winrar 的目录下的 unrar.exe 复制到 Python 路径的 Scripts 文件夹下。
(5)重启PyCharm

2、安装rarfile

执行以下命令:

pip install rarfile

3、解压rar文件

import rarfiledef decompress_rar():# 找到rar文件    z = rarfile.RarFile(r'E:\Python脚本\作业查重\2015090103石凯-新闻管理系统.rar')      # 指定解压输出的目录    z.extractall(r'E:\Python脚本\作业查重\2015090103石凯-新闻管理系统')      z.close()    # 删除压缩文件    # os.remove(pathRar)

4、压缩成rar文件

由于rarfile只能解压文件不能压缩文件,所以我们需要调用第三方程序来完成。

def compress(input_file, output_file, root_path,        rar_path='D:/"Program Files"/WinRAR/WinRAR.exe'):    """    调用CMD命令压缩文件/文件夹    Parameters    ----------    input_file : 需要压缩的文件/文件夹名。从哪一级目录开始,就会从哪一级开始压缩;    output_file : 压缩文件的输出路径及其压缩的文件名;        可以是.rar, .zip;    root_path: input_file 所在目录;    rar_path : WinRAR软件的安装路径,        The default is 'C:/"Program Files"/WinRAR/WinRAR.exe'.            NOTE: 路径和文件名中带空格的时候一定要多加一重引号!!    """    cmd_command = r'%s a %s %s' % (rar_path, output_file, input_file)    print(root_path)    os.chdir(root_path) # 切换工作目录    print(cmd_command)    os.system(cmd_command)        if os.system(cmd_command)==0:        print('Successful backup to', output_file)    else:        print('Backup FaiLED', input_file)  def rar(paths):    files = os.listdir(paths)    for path in files:        input_file = '"' + path + '"'        out = path.split('.')[0] + '_bak.rar'        out_file = '"' + out + '"'        print(path)        print(out)        compress(input_file,out_file,paths)

参考文章:https://blog.csdn.net/hanmengaidudu/article/details/120193682

三、zip文件的压缩和解压

1、安装zipfile

执行以下命令:

pip install zipfile

2、解压zip文件

使用zipfileextract()extractall()方法直接解压时,文件名可能会出现乱码,所以我们要特别解决这个问题:

# 出现乱码时解码def recode(raw: str) -> str:    try:        return raw.encode('cp437').decode('gbk')    except:        return raw.encode('utf-8').decode('utf-8')# 解压zip文件def decompress_zip(pathZip, obj):    zipFile = zipfile.ZipFile(pathZip)  # 压缩包路径    zipFileList = zipFile.namelist()  # 获取压缩包里所有文件    print('-------------------正在解压-----------------------')    for f in zipFileList:        zipFile.extract(f, obj)  # 循环解压文件到指定目录        name1 = os.path.join(obj, f)  # 乱码文件名        name2 = os.path.join(obj, recode(f))  # 解码后文件名        os.rename(name1, name2)  # 文件重命名    zipFile.close()  # 关闭文件释放内存    print('-------------------解压完成-----------------------')    # 删除压缩文件    # os.remove(pathZip)

3、压缩成zip文件

参考文章:https://blog.csdn.net/Likianta/article/details/126710855

参考文章:https://blog.csdn.net/ooowwq/article/details/125949394

参考 文章:https://blog.csdn.net/qq_36182112/article/details/127630950

四、批量解压

如果想要实现批量解压某个目录下的全部压缩包的话,可以配合python自带的od库来实现,一些参考代码如下:

# 批量解压文件def batch_decompress():    file_names = os.listdir(r'E:\Python脚本\作业查重\20大数据班Javaweb新闻系统')  # 压缩文件所在的目录    # print(file_names)    print('-------------------正在解压-----------------------')    for file_name in file_names:        # 将文件名与目录拼接起来,得到文件绝对路径地址        path_name = os.path.join(r'E:\Python脚本\作业查重\20大数据班Javaweb新闻系统', file_name)        print(path_name)        if path_name[path_name.find('.')+1:] == 'zip':            decompress_zip(path_name)        elif path_name[path_name.find('.')+1:] == 'rar':            decompress_rar(path_name)        else:            decompress_7z(path_name)    print('-------------------解压完成-----------------------')

来源地址:https://blog.csdn.net/qq_47188967/article/details/129735758

--结束END--

本文标题: Python实现rar、zip和7z文件的压缩和解压

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

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

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

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

下载Word文档
猜你喜欢
  • Python实现rar、zip和7z文件的压缩和解压
    一、7z压缩文件的压缩和解压 1、安装py7zr 我们要先安装py7zr第三方库: pip install py7zr 如果python环境有问题,执行上面那一条安装语句老是安装在默认的python环...
    99+
    2023-09-20
    python
  • [python]批量解压文件夹下所有压缩包(rar、zip、7z)
            在文件夹作用包含许多压缩包的时候,解压起来就很费时费力,尤其是在文件夹还存在嵌套的情况下,解压起来就更麻烦了。Franpper今天给大家带来递归遍历指定路径下的所有文件和文件夹,批量解压所有压缩包的方法,帮大家一键解压。  ...
    99+
    2023-09-06
    python
  • Java实现文件压缩为zip和解压zip压缩包
    目录压缩成.zip解压.zip压缩成.zip 代码如下: public static void toZip(String srcDir, OutputStream out) th...
    99+
    2024-04-02
  • 如何在C#中压缩和解压rar、zip文件
    这期内容当中小编将会给大家带来有关如何在C#中压缩和解压rar、zip文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在C#.NET中压缩解压rar文件rar格式是一种具有专利文件的压缩格式,是一种商业...
    99+
    2023-06-15
  • Java如何实现文件压缩为zip和解压zip压缩包
    本篇内容介绍了“Java如何实现文件压缩为zip和解压zip压缩包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!压缩成.zip代码如下:pu...
    99+
    2023-07-02
  • Ubuntu压缩和解压缩RAR文件的方法
    本篇内容主要讲解“Ubuntu压缩和解压缩RAR文件的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ubuntu压缩和解压缩RAR文件的方法”吧!方法很简单,一条命令就搞定了:sudo ap...
    99+
    2023-06-13
  • C#压缩或解压rar、zip文件方法实例
    前言 为了便于文件在网络中的传输和保存,通常将文件进行压缩操作,常用的压缩格式有rar、zip和7z,本文将介绍在C#中如何对这几种类型的文件进行压缩和解压,并提供一些在C#中解压缩...
    99+
    2024-04-02
  • Java对zip,rar,7z文件带密码解压实例详解
    目录前言实现代码1、pom.xml2、zip解压3、rar解压4、7z解压5、解压统一入口封装6、测试代码补充前言 在一些日常业务中,会遇到一些琐碎文件需要统一打包到一个压缩包中上传...
    99+
    2024-04-02
  • Java怎么对zip,rar,7z文件带密码解压
    这篇文章主要讲解了“Java怎么对zip,rar,7z文件带密码解压”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么对zip,rar,7z文件带密码解压”吧!前言在一些日常业务中,...
    99+
    2023-07-02
  • go怎么压缩和解压zip文件
    本篇内容主要讲解“go怎么压缩和解压zip文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go怎么压缩和解压zip文件”吧!压缩zipfunc Zip(dest strin...
    99+
    2023-07-02
  • C#通过cmd调用7z软件实现压缩和解压文件
    压缩文件: public object CompressZipFile(string sourceFile, string destinationFile) { ...
    99+
    2024-04-02
  • Node.js中zip压缩和zip解压缩实例用法
    本篇内容主要讲解“Node.js中zip压缩和zip解压缩实例用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中zip压缩和zip解压缩实例用法...
    99+
    2024-04-02
  • Java压缩与解压缩ZIP文件
    文章目录 前言Java解压缩文件压缩和解压缩ZIP文件检验应用总结 前言 在现代计算机上,数据传输和存储越来越依赖于文件压缩技术。当我们需要发送大量数据时,压缩文件可以大大减少传输时间...
    99+
    2023-09-11
    java zip 压缩文件 解压缩文件 ZipOutputStream
  • java工具类 - 实现文件压缩zip及解压缩
    对hutool工具类进行的封装 依赖 cn.hutool hutool-all 5.8.15 ...
    99+
    2023-10-28
    java
  • 如何在Java中利用zip实现压缩和解压缩
    这篇文章主要介绍了如何在Java中利用zip实现压缩和解压缩,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和...
    99+
    2023-06-06
  • linux下如何压缩好解压.rar文件
    这篇文章将为大家详细讲解有关linux下如何压缩好解压.rar文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一,解压问题在网上下东西的时候,经常会遇到.rar后缀的文件,我用tar解压,...
    99+
    2023-06-05
  • python解压rar文件
    在数据预处理阶段,有时候会发现我们的数据存储在大量杂乱无章的压缩文件中,这些压缩文件还可能处在复杂的目录树结构下。这时候你可能会想写个python脚本来处理。 对于zip文件,python 的zipfile模块提供了很好的支持...
    99+
    2023-01-31
    文件 python rar
  • 里有Java如何实现压缩与解压zip文件
    里有Java如何实现压缩与解压zip文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java解压缩zip - 多个文件(包括文件夹),对多个文件和文件夹进行压...
    99+
    2023-05-31
    java ava zip
  • Java的zip文件压缩与解压:ZipInputStream,ZipOutputStream
    目录 文件压缩 ZipOutputStream文件解压:ZipInputStream 文件压缩 ZipOutputStream    用ZipOutputStream来压缩一个文件夹时,要搭配ZipEntry来使用。ZipEnt...
    99+
    2023-08-16
    java ZipInputStream ZipOutputStream zip
  • 利用Java实现zip压缩/解压缩 (转)
    利用Java实现zip压缩/解压缩 (转)[@more@]利用Java实现zip压缩/解压缩---摘自互联网  由于网络带宽有限,所以数据文件的压缩有利于数据在Inte.NET上的快速传输,同时也节 省服务器的外存空间。   Java 1....
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作