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 21 Python
Python开发的单词频率统计工具wordsworth使用方法
Jun 25 Python
Python标准库defaultdict模块使用示例
Apr 28 Python
Python编程中使用Pillow来处理图像的基础教程
Nov 20 Python
python 调用HBase的简单实例
Dec 18 Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 Python
python处理DICOM并计算三维模型体积
Feb 26 Python
基于Python实现拆分和合并GIF动态图
Oct 22 Python
Python imread、newaxis用法详解
Nov 04 Python
分享PyCharm的几个使用技巧
Nov 10 Python
Python中私有属性的定义方式
Mar 05 Python
python torch.utils.data.DataLoader使用方法
Apr 02 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批量删除数据
2007/01/18 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
PHP图形操作之Jpgraph学习笔记
2015/12/25 PHP
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
js option删除代码集合
2008/11/12 Javascript
JS编程小常识很有用
2012/11/26 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
vc6编写python扩展的方法分享
2014/01/17 Python
Python random模块常用方法
2014/11/03 Python
Python 中迭代器与生成器实例详解
2017/03/29 Python
详解django中自定义标签和过滤器
2017/07/03 Python
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
python 制作磁力搜索工具
2021/03/04 Python
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
金融行业务员的自我评价
2013/12/13 职场文书
经理管理专业自荐信范文
2013/12/31 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
公司门卫岗位职责
2014/03/15 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
毕业生实习证明
2014/09/19 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
2015年三万活动总结
2015/03/25 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
Nginx速查手册及常见问题
2022/04/07 Servers