from rarfile import RarFile
rar = RarFile(input_file)
rar.extractall(output_file)
rar.close()
注意,需要把WinRAR 所在的文件路径【C:\Program Files\WinRAR】放在系统环境变量当中(记得重启脚本编译器)。
# zip解压复制于 i止于至善 https://blog.csdn.net/qq_21076851/article/details/122752196
# 打开解压文件时,解决解压文件的中文乱码问题
def support_gbk(zip_file: ZipFile):
name_to_info = zip_file.NameToInfo
# copy map first
for name, info in name_to_info.copy().items():
real_name = name.encode('cp437').decode('gbk')
if real_name != name:
info.filename = real_name
del name_to_info[name]
name_to_info[real_name] = info
return zip_file
# 打开解压文件时,解决解压文件的中文乱码问题
def extract_file(inputfile, output_dir):
try:
with support_gbk(ZipFile(inputfile)) as zfp:
zfp.extractall(output_dir)
except:
rar = RarFile(inputfile)
# 解压RAR文件
rar.extractall(output_dir)
# 关闭RARFile对象
rar.close()
# 有用的方法
# 查看压缩包内名称
# zip
[i.encode('cp437').decode('gbk') for i in zip_file.namelist()]
# rar
rar_file.namelist()