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 相关文章推荐
pyqt和pyside开发图形化界面
Jan 22 Python
Python的动态重新封装的教程
Apr 11 Python
详解Python的Django框架中manage命令的使用与扩展
Apr 11 Python
Python如何获取系统iops示例代码
Sep 06 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
使用Python批量修改文件名的代码实例
Jan 24 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 Python
解决Python对齐文本字符串问题
Aug 28 Python
Python+OpenCV实现将图像转换为二进制格式
Jan 09 Python
Python 动态变量名定义与调用方法
Feb 09 Python
python字典与json转换的方法总结
Dec 28 Python
利用Python实现最小二乘法与梯度下降算法
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
PHP 页面编码声明方法详解(header或meta)
2010/03/12 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
php引用传值实例详解学习
2013/11/06 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php实现购物车功能(下)
2016/01/05 PHP
优化javascript的执行速度
2010/01/23 Javascript
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
Python探索之SocketServer详解
2017/10/28 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
Django框架自定义session处理操作示例
2019/05/27 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
初中生自我鉴定
2014/02/04 职场文书
项目合作意向书范本
2014/04/01 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
初中团委工作总结
2015/08/13 职场文书