当前位置:   article > 正文

python实现rar解压和压缩_python 解压rar

python 解压rar

1、前期准备

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

2、工具安装

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

在这里插入图片描述
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
def main():
            unrar(base_path)
            rar(base_path)

if __name__ == "__main__":
    main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/746346
推荐阅读
相关标签
  

闽ICP备14008679号