(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
import rarfile
pathRar = '' # rar文件路径
outputDir = '' # 指定输出的文件夹路径
z = rarfile.RarFile(pathRar)
z.extractall(outputDir)
z.close()
os.remove(pathRar)
使用zipfile的extract()或extractall()方法直接解压时,文件名可能会出现乱码。
import zipfile
# 出现乱码时解码
def recode(raw: str) -> str:
try:
return raw.encode('cp437').decode('gbk')
except:
return raw.encode('utf-8').decode('utf-8')
zipFile = zipfile.ZipFile(pathZip) # 压缩包路径
zipFileList = zipFile.namelist() # 获取压缩包里所有文件
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() # 关闭文件释放内存
os.remove(pathZip)
参考文档:
https://blog.csdn.net/m0_46172703/article/details/122963919?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166726793316782417053165%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=166726793316782417053165&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-2-122963919-null-null.142v62control,201v3control_2,213v1t3_esquery_v2&utm_term=python%E8%A7%A3%E5%8E%8Brar%E6%96%87%E4%BB%B6&spm=1018.2226.3001.4187
https://blog.csdn.net/m0_68103885/article/details/124609932