python对于gbk处理(Python 2/3下处理cjk编码的zip文件的方法)
类别:脚本大全 浏览量:1019
时间:2021-10-14 00:40:07 python对于gbk处理
Python 2/3下处理cjk编码的zip文件的方法今天项目中遇到了中文编码的zip文件,处理了蛮长时间,所以记录下,以免下次踩坑。
python2下
python2中读取zip文件,zipfile.zipinfo的filename类型是str,基本上类似于python3中的bytes,即可以被decode为unicode。
所以,要处理中文,只需要将文件名按照编码decode成unicode就好。
|
import zipfile fpath = '/path/to/zip.zip' zfile = zipfile.zipfile(fpath, 'r' ) for fileinfo in zfile.filelist: print fileinfo.filename.decode( 'gb18030' ) # 如果要更加详细的区分bytes/str/unicode的语义 print bytes(fileinfo.filename).decode( 'gb18030' ) |
python3下
python3中,language encoding flag (efs)如果是1,则按照utf8来处理文件编码,efs如果为0,则直接按照cp437解码文件名。这是标准直接规定的。
但是,很多软件在制作zip压缩包的时候,直接使用gb18030或者其他非标准编码格式来编码文件名,所以我们还得将文件名反转为bytes,然后再使用对应的编码方式解码:
|
fpath = '/path/to/zip.zip' zfile = zipfile.zipfile(fpath, 'r' ) for fileinfo in zfile.filelist: print (fileinfo.filename.encode( 'cp437' ).decode( 'gb18030' )) |
方法都有了,那直接根据文件名智能猜测文件编码,然后解压就好。但是由于单个文件名太短,chardet的猜测可能不准,所以我们可以直接将所有的文件名连接起来,猜测编码。
代码请参考 mczip ,兼容python2和python3。
总结
以上所述是小编给大家介绍的python 2/3下处理cjk编码的zip文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!原文链接:https://www.robberphex.com/2019/04/1022
您可能感兴趣
- python核心编程内容(顶级大神Linux,Python,Go,PHP之父谁是夜猫子?用Python揭秘!)
- python教程第126节(Python 学习教程之networkx)
- python调用支付宝支付接口(python实现支付宝转账接口)
- pythonselenium自动选框(python selenium 弹出框处理的实现)
- python 配置文件环境变量(python环境路径配置以及命令行运行脚本)
- python蓝牙knn算法(python使用KNN算法识别手写数字)
- python获取游戏画面信息(python游戏开发之视频转彩色字符动画)
- python识别验证码教程(Python3.5 + sklearn利用SVM自动识别字母验证码方法示例)
- python有什么好的微信公众号(python下载微信公众号相关文章)
- python的环境变量怎么设置(详解如何设置Python环境变量?)
- python中if的条件语句(浅谈Python的条件判断语句if/else语句)
- pythonhttp文件服务器(使用Python创建简单的HTTP服务器的方法步骤)
- python3.7.2 详细安装教程(python3.5安装python3-tk详解)
- python爬虫面试经历(搞定这套Python爬虫面试题面试会so easy)
- python class转json(Python对象转换为json的方法步骤)
- python怎么进行参数传递(在Python中如何传递任意数量的实参的示例代码)
- 新晋小花被称女版吴卓羲 将取代滕丽名成为TVB新一代御用女警(新晋小花被称女版吴卓羲)
- 艺人吴卓羲10年警察生涯,演足10年阿Sir,系咩玩法(艺人吴卓羲10年警察生涯)
- 菲律宾潜水(菲律宾潜水价格)
- 泰国人妖(变性手术生殖器要割掉吗)
- 泰国美女(泰国人妖和女性如何区分)
- 泰国旅游业怎么样(泰国的旅游产业)
热门推荐
- 对mysql性能优化的看法(聊聊MySQL的COUNT的性能,看看怎么最快?)
- python爬取数据总结(python3爬虫学习之数据存储txt的案例详解)
- python怎么自动刷抖音(python实现抖音点赞功能)
- docker网络有哪些模式(Docker网络原理及自定义网络详细解析)
- js操作iframe
- dedecms滚动代码(dedecms常用sql语句汇总)
- 如何编写错误日志才更容易排查问题
- phpfpm优化方法(php-fpm超时时间设置request_terminate_timeout资源问题分析)
- python怎样看字符unicode编码(Python3中编码与解码之Unicode与bytes的讲解)
- laravel指定管理员(在laravel-admin中列表中禁止某行编辑、删除的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9