Unrar库的使用
摘要
主要实现Python和C在windows和linux上的调用
- 实现利用python调用unrar解压rar文件。<完成:2019-11-16>
windows环境
准备工作
- 安装python的unrar库,执行命令
pip install unrar
- 下载windows下的unrardll库,下载地址www.rarlab.com/rar_add.htm,选择下载UnRAR.dll
- 解压UnRAR.dll到任意路径,结构目录如附录所示
环境变量设置(64位为例)
有三种使用方式:
- 添加
Path
环境变量:将UnRAR64.dll所在路径添加至Path
环境变量中,并重命名UnRAR64.dll为unrar.dll - 添加
UNRAR_LIB_PATH
环境变量:将UnRAR64.dll的绝对路径添加到UNRAR_LIB_PATH
环境变量中 - 修改
unrarlib.py
(一般路径:在python安装路径下\Lib\site-packages\unrar\unrarlib.py
)中第43行(lib_path = lib_path or find_library("unrar.dll")
)的lib_path
参数直接设置为UnRAR64.dll的绝对路径
注意:前两种方式设置完成之后需要重启python终端,是终端重新加载环境变量。第3种方式不用重启终端,但不推荐。
示例代码
# -*- coding: utf-8 -*-
# @Time : 2019/11/16 11:55:49
# @Author : ddvv
# @Site : https://www.cnblogs.com/ddvv
# @File : test_unrar.py
# @Software: Visual Studio Code
# @Desc : None
import os
from unrar import rarfile
def main():
list_dir = r'@which_dir'
for p, dirs, filenames in os.walk(list_dir):
for filename in filenames:
f = os.path.join(list_dir, filename)
try:
if rarfile.is_rarfile(f):
print(filename)
rfile = rarfile.RarFile(f)
else:
continue
except Exception as e:
print('%s failed rar! %s' % (filename, str(e)))
continue
names = rfile.namelist()
for name in names:
pass
# 解压到当前目录
# e_name = rfile.extract(name)
# print('%s extract to %s' % (name, e_name))
if __name__ == "__main__":
main()
附录
Documentation // 文档信息目录
Examples // 各种语言示例代码目录
| -- C
| -- C#
| -- Delphi
| -- Free Pascal
| -- MASM
| -- Perl
| -- VB.NET
| -- VBasic Sample 1
| -- VBasic Sample 2
| -- Virtual Pascal
| -- readme.txt
NoCrypt // 不支持加密和密码设置的版本
x64 // 64位版本
license.txt // license
UnRAR.dll // 32位dll
unrar.h // 头文件
UnRAR.lib // lib文件
whatsnew.txt // 更新说明