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 调用DLL操作抄表机
Jan 12 Python
python发送邮件接收邮件示例分享
Jan 21 Python
Python实现的爬虫功能代码
Jun 24 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
基于pip install django失败时的解决方法
Jun 12 Python
python 文件查找及内容匹配方法
Oct 25 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
python、Matlab求定积分的实现
Nov 20 Python
python如何编写win程序
Jun 08 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
Numpy(Pandas)删除全为零的列的方法
Sep 11 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 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
Smarty安装配置方法
2008/04/10 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
php 类自动载入的方法
2015/06/03 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
javascript 尚未实现错误解决办法
2008/11/27 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
如何获取网站icon有哪些可行的方法
2014/06/05 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
2020/04/23 Javascript
Python 常用string函数详解
2016/05/30 Python
python素数筛选法浅析
2018/03/19 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
使用python实现多维数据降维操作
2020/02/24 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
Java的类与C++的类有什么不同
2014/01/18 面试题
书法大赛策划方案
2014/06/04 职场文书
教师节活动总结
2014/08/29 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS