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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
wxPython窗口中文乱码解决方法
Oct 11 Python
在SAE上部署Python的Django框架的一些问题汇总
May 30 Python
python爬虫之百度API调用方法
Jun 11 Python
解决pandas 作图无法显示中文的问题
May 24 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
详解用Python练习画个美队盾牌
Mar 23 Python
Python实现字符串匹配的KMP算法
Apr 04 Python
PyQt5根据控件Id获取控件对象的方法
Jun 25 Python
Python函数中的可变长参数详解
Sep 12 Python
Python函数参数类型及排序原理总结
Dec 19 Python
python 判断文件或文件夹是否存在
Mar 18 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插件 HTMLPurifier HTML解析器
2013/07/01 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
javascript读取xml
2006/11/04 Javascript
js apply/call/caller/callee/bind使用方法与区别分析
2009/10/28 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
vue实现扫码功能
2020/01/17 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
护士演讲稿优秀范文
2014/04/30 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
求职意向书范本
2015/05/11 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL