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之Python文档
Oct 10 Python
python利用dir函数查看类中所有成员函数示例代码
Sep 08 Python
Python 结巴分词实现关键词抽取分析
Oct 21 Python
windows下pycharm安装、创建文件、配置默认模板
Jul 31 Python
Python 中包/模块的 `import` 操作代码
Apr 22 Python
浅谈tensorflow之内存暴涨问题
Feb 05 Python
jupyternotebook 撤销删除的操作方式
Apr 17 Python
django restframework serializer 增加自定义字段操作
Jul 15 Python
python与js主要区别点总结
Sep 13 Python
Python识别验证码的实现示例
Sep 30 Python
在PyCharm中安装PaddlePaddle的方法
Feb 05 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 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
杏林同学录(二)
2006/10/09 PHP
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
优化innerHTML操作(提高代码执行效率)
2011/08/20 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
jquery remove方法应用详解
2012/11/22 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
jQuery的extend方法【三种】
2016/12/14 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
javascript实现留言板功能
2020/02/08 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
python图形用户接口实例详解
2019/12/16 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
促销活动方案模板
2014/02/24 职场文书
给老师的一封感谢信
2015/01/20 职场文书
发布会邀请函
2015/01/31 职场文书
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL