Unrar解压缩.rar文件

Unrar解压rar包

最近在下载很多附件,附件中有很多的格式,.doc,.xls,rar,zip等等。在处理这些附件的时候还是遇到了很多的坑,这里记录一下,希望对后来的朋友有所帮助。
Unrar解压缩rar包
在linux环境中与windows环境后一些区别。
先说说windows环境的使用。
1.pip3 install unrar(安装unrar模块)
然后在from unrar import RarFile会报错LookupError: Couldn’t find path to unrar library
这个是环境的问题。意思是找不到 unrar library的路径,这里我们就需要去下载这个unrar library,事实上它就是UnRAR.dll这个东西,下载网址:http://www.rarlab.com/rar/UnRARDLL.exe 或者去http://www.rarlab.com/rar_add.htm找到UnRAR.dll下载,在lunix下应该需要自己编译。

2.设置环境变量
安装完后我电脑中的路径为C:\Program Files (x86)\UnrarDLL,win7 32位的朋友可以将它添加到环境变量中,64位的将其中的X64文件夹设置为环境变量,因为unrar模块识别的文件是unrar.dll和unrar.lib,所以将文件夹中的UnRAR.dll和UnRAR.lib用小写重命名。

Windows64位的还要将X64下面的UnRAR64.lib和UnRAR64.dall改为unrar.lib和unrar.dall去掉64且为小写。好了,重新尝试 from unrar import rarfile并运行,就成功了!(事实上我还是报错,我把pycharm重新关了之后再启动就好了,可能是pycharm的更新有延迟)

3.开始解压
解压的命令还是非常简单
文件很多的话还可以加入循环来解压,以及重命名。

from unrar import rarfile
file=rarfile.RarFile('filename.rar')
file.excractall('src')#src表示解压的路径

这个方法主要参考:windows unrar安装及使用

linux 使用Unrar加压.rar文件
linux中使用unrar解压rar文件相对来说更加的方便
直接sudo apt install unrar进行安装
之后就可以在shell中来使用相关的命令开始解压
当然如果文件比较多也可以结合os模块写成python的脚本来自动运行
这里说两个常用的命令:
unrar e filename.rar src :将filename.rar文件解压到路径为src的路径下面,e表示不处理rar包中文件路径(比如rar中有文件夹,文件夹下有图片,通过这种方式会直接把图片解压到解压的路径中)
rar x aa.rar 将aa.rar压缩文件解压到aa目录下,并保持原来压缩之前aa文件的目录组织结构

def unrar(self):
        unrar_list=os.listdir(self.path)
        for rar in unrar_list:
            if '.rar' in rar:
                file = os.path.splitext(rar)
                filename, type = file
                filenames = filename.split('_')[0]
                #这里用os.system来实现shell命令
                os.system('unrar e /mnt/attachment/{} {}'.format(rar,self.unrar_path))
                lis=os.listdir(self.unrar_path)
                for file in lis:
                    # pattern=re.findall('^(\d+).*?',file)
                    if file=='Thumbs.db':
                        os.remove(self.unrar_path+'/{}'.format('Thumbs.db'))

这里放的代码不完整,自己补全哈。

你可能感兴趣的:(工作日常)