python解压zip包中文乱码解决方法


Posted in Python onNovember 27, 2020

乱码得原因:

由于ZipFile模块导出遇到中文解码不对,windows上会出现,linux是否会出现不知道没测试过。 

解决方式:

1. 搞个文件名引射表(不太方便,少量文件夹套用时候还可以)

2. 修改源码解码格式(不太方便,自己搞了一下,之后报其他错误)

3. 自己写入文件,自己创建文件夹(推荐)

自己创建的写法:

with zipfile.ZipFile(file=zip_save_path, mode='r') as zf:
      # 解压到指定目录,首先创建一个解压目录
      os.mkdir(unzip_dir_path)
      for old_name in zf.namelist():
        # 获取文件大小,目的是区分文件夹还是文件,如果是空文件应该不好用。
        file_size = zf.getinfo(old_name).file_size
        # 由于源码遇到中文是cp437方式,所以解码成gbk,windows即可正常
        new_name = old_name.encode('cp437').decode('gbk')
        # 拼接文件的保存路径
        new_path = os.path.join(unzip_dir_path, new_name)
        # 判断文件是文件夹还是文件
        if file_size > 0:
          # 是文件,通过open创建文件,写入数据
          with open(file=new_path, mode='wb') as f:
            # zf.read 是读取压缩包里的文件内容
            f.write(zf.read(old_name))
        else:
          # 是文件夹,就创建
          os.mkdir(new_path)

结果正常:

python解压zip包中文乱码解决方法

以上就是python解压zip包中文乱码解决方法的详细内容,更多关于python 解压zip包中文乱码的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
理解Python中的绝对路径和相对路径
Aug 30 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 Python
对pandas中to_dict的用法详解
Jun 05 Python
numpy.random模块用法总结
May 27 Python
python整合ffmpeg实现视频文件的批量转换
May 31 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
python自动发微信监控报警
Sep 06 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
使用python绘制温度变化雷达图
Oct 18 Python
浅谈matplotlib中FigureCanvasXAgg的用法
Jun 16 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
Python截图并保存的具体实例
Jan 14 Python
python 实现控制鼠标键盘
Nov 27 #Python
Python模拟键盘输入自动登录TGP
Nov 27 #Python
python操作toml文件的示例代码
Nov 27 #Python
Python GUI库Tkiner使用方法代码示例
Nov 27 #Python
Python爬虫爬取有道实现翻译功能
Nov 27 #Python
python爬虫中采集中遇到的问题整理
Nov 27 #Python
python 用opencv实现图像修复和图像金字塔
Nov 27 #Python
You might like
PHP新手上路(十一)
2006/10/09 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
分享php邮件管理器源码
2016/01/06 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
js中this对象用法分析
2018/01/05 Javascript
vue二级路由设置方法
2018/02/09 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
解决elementui表格操作列自适应列宽
2020/12/28 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
基于python的汉字转GBK码实现代码
2012/02/19 Python
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
情人节活动策划方案
2014/02/27 职场文书
班组建设经验交流材料
2014/05/12 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
个人四风对照检查材料
2014/09/26 职场文书
工作检讨书怎么写
2014/10/10 职场文书
警示教育观后感
2015/06/17 职场文书
Python中Selenium对Cookie的操作方法
2021/07/09 Python
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android