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代码来绘制彭罗斯点阵的教程
Apr 03 Python
介绍Python中几个常用的类方法
Apr 08 Python
用Python写一个无界面的2048小游戏
May 24 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
教你如何编写、保存与运行Python程序的方法
Jul 12 Python
Tensorflow模型实现预测或识别单张图片
Jul 19 Python
详解PyTorch手写数字识别(MNIST数据集)
Aug 16 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
Sep 05 Python
python实现宿舍管理系统
Nov 22 Python
Django REST framwork的权限验证实例
Apr 02 Python
Python实现的扫码工具居然这么好用!
Jun 07 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
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
2015/02/10 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
在python中pandas的series合并方法
2018/11/12 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
python实现批量注册网站用户的示例
2019/02/22 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
2019/12/10 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
如何基于Python按行合并两个txt
2020/11/03 Python
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
函授毕业生自我鉴定范文
2014/03/25 职场文书
安全生产月标语
2014/10/07 职场文书
贷款工资证明范本
2015/06/12 职场文书
严以用权学习心得体会
2016/01/12 职场文书
商业计划书之服装
2019/09/09 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python