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列表与元组详解实例
Nov 01 Python
python中bisect模块用法实例
Sep 25 Python
详解在Python中处理异常的教程
May 24 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
Apr 15 Python
浅谈Python中的可变对象和不可变对象
Jul 07 Python
Python之自动获取公网IP的实例讲解
Oct 01 Python
Python序列化基础知识(json/pickle)
Oct 19 Python
Python如何抓取天猫商品详细信息及交易记录
Feb 23 Python
Python数据集切分实例
Dec 08 Python
对python中词典的values值的修改或新增KEY详解
Jan 20 Python
python实现宿舍管理系统
Nov 22 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 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
通过文字传递创建的图形按钮
2006/10/09 PHP
PHP编码规范-php coding standard
2007/03/16 PHP
php socket方式提交的post详解
2008/07/19 PHP
php 模拟get_headers函数的代码示例
2013/04/27 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
php swoft框架实例用法
2020/12/22 PHP
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
Python中的闭包实例详解
2014/08/29 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
白酒市场开发计划书
2014/01/09 职场文书
房屋改造计划书
2014/01/10 职场文书
2014自主招生自荐信策略
2014/01/27 职场文书
优秀企业获奖感言
2014/02/01 职场文书
有趣的广告词
2014/03/18 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
工作所在部门证明
2014/09/21 职场文书
导游词300字
2015/02/13 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
Python中相见恨晚的技巧
2021/04/13 Python
python通过opencv调用摄像头操作实例分析
2021/06/07 Python