python实现rar解压和压缩

1、前期准备

python解压rar格式文件,需要安装rarfile模块,去网上下载rarfile,我这里下载的是rarfile-2.4.tar.gz,解压还需要对应的UnRAR.exe

2、工具安装

 将rarfile-2.4.tar.gz拷贝到python安装路径的Scripts目录下:

在这里插入图片描述
cmd进入到python的Scripts目录下运行pip install rarfile-2.4.tar.gz,安装成功如下图:

在这里插入图片描述

3、解压rar

import os
import rarfile

base_path = r'F:\python\rar'
def unrar(base_path):
    files = os.listdir(base_path)
    files.sort()
    for path in files:
        full_path = os.path.join(base_path, path)
        print(full_path)
        z = rarfile.RarFile(full_path)
        z.extractall(base_path)
        z.close()
        os.remove(full_path)

4、压缩rar文件

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)
def main():
            unrar(base_path)
            rar(base_path)

if __name__ == "__main__":
    main()

【注意】:
需要将UnRAR.exe文件放到和python脚本统计目录下,否则虽然脚本运行成功,但是不会生成解压后的文件

  • 7
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python提供了多种方法和库来进行文件解压缩。其中一种方法是使用zipfile库,它可以用于解压缩zip文件。通过引入zipfile库并使用其中的ZipFile类,我们可以轻松地解压缩zip文件。以下是一个使用zipfile库解压缩zip文件的示例代码: ``` import zipfile # 创建ZipFile对象,指定要解压缩的zip文件路径 with zipfile.ZipFile('example.zip', 'r') as zip_ref: # 解压所有文件到指定目录 zip_ref.extractall('unzip_folder') # 注意:此处的'example.zip'是待解压缩的zip文件名,'unzip_folder'是要解压缩到的目标文件夹路径 ``` 另外,如果需要解压缩其他类型的文件,比如tar、gz、rar等,可以使用相应的库来进行解压缩。例如,要解压缩.7z文件,可以使用py7zr库,如下所示: ``` import py7zr # 创建SevenZipFile对象,指定要解压缩的.7z文件路径 with py7zr.SevenZipFile('example.7z', 'r') as archive: # 解压缩所有文件到指定目录 archive.extractall(path='unzip_folder') # 注意:此处的'example.7z'是待解压缩的.7z文件名,'unzip_folder'是要解压缩到的目标文件夹路径 ``` 以上代码示例展示了使用zipfile库和py7zr库解压缩文件的过程。根据你的需求和待解压缩的文件类型,选择适当的库来进行文件解压缩操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python 文件解压缩](https://blog.csdn.net/weixin_45459224/article/details/127120860)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [如何使用Python对文件进行压缩解压缩](https://blog.csdn.net/xff123456_/article/details/123900450)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值