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单线程实现多个定时器示例
Mar 30 Python
Python实现的十进制小数与二进制小数相互转换功能
Oct 12 Python
python并发编程之线程实例解析
Dec 27 Python
sublime python3 输入换行不结束的方法
Apr 19 Python
Python进阶之@property动态属性的实现
Apr 01 Python
Python二维码生成识别实例详解
Jul 16 Python
Flask框架 CSRF 保护实现方法详解
Oct 30 Python
Mac中PyCharm配置Anaconda环境的方法
Mar 04 Python
用python实现名片管理系统
Jun 18 Python
解决python3.x安装numpy成功但import出错的问题
Nov 17 Python
Python中的流程控制详解
Feb 18 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
jQuery 使用手册(七)
2009/09/23 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
[01:01:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第一场 3月4日
2021/03/11 DOTA
python实现udp数据报传输的方法
2014/09/26 Python
Python的迭代器和生成器
2015/07/29 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
2018/09/17 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
python面试题小结附答案实例代码
2019/04/11 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
母亲七十大寿答谢词
2014/01/18 职场文书
化工操作工岗位职责
2014/04/29 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
公司更名通知函
2015/04/24 职场文书
党员证明模板
2015/06/19 职场文书
基于PyQt5制作一个群发邮件工具
2022/04/08 Python