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的Urllib库的一些高级用法
Apr 30 Python
Python中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
老生常谈Python序列化和反序列化
Jun 28 Python
分享6个隐藏的python功能
Dec 07 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
python装饰器常见使用方法分析
Jun 26 Python
Django 用户认证组件使用详解
Jul 23 Python
如何使用python操作vmware
Jul 27 Python
python数据预处理 :数据抽样解析
Feb 24 Python
Python基于gevent实现高并发代码实例
May 15 Python
Python3+Django get/post请求实现教程详解
Feb 16 Python
Python中的socket网络模块介绍
Jul 23 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
实用函数10
2007/11/08 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
php实现简单的上传进度条
2015/11/17 PHP
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
jquery 插件学习(三)
2012/08/06 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
Python3.x中自定义比较函数
2015/04/24 Python
简单介绍Python中的readline()方法的使用
2015/05/24 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
基于python代码批量处理图片resize
2020/06/04 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
2013年大学生的自我鉴定
2013/10/24 职场文书
横幅标语大全
2014/06/17 职场文书
2015年测量员工作总结
2015/05/23 职场文书
演讲开场白台词大全
2015/05/29 职场文书
《颐和园》教学反思
2016/02/19 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python