使用
shutil.unpack_archive
解压后乱码的解决过程
参考文章:https://blog.csdn.net/qq_21076851/article/details/122752196
在参考上述文章的解决方法后,可能是我们zipfile包版本不同,抛出错误BadZipFile。定位到代码位置,发现对文件名进行了一个比较,不同则会抛出错误。
if fname_str != zinfo.orig_filename:
raise BadZipFile(
'File name in directory %r and header %r differ.'
% (zinfo.orig_filename, fname))
解决方法
搜索cp437,将第二个出现cp437的地方也改为gbk,代码就能正常运行了。