相信很多初学者在刚接触到python时,可能会接触到关于python的zip解压,大家最熟悉的想必是zip压缩文件了吧,也确实是压缩文件大多都是zip文件,但是有时解压后会出现乱码的情况,那么怎样解决python解压zip时乱码的这种情况呢?
文章插图
解压文件首先要在编写代码的开头通过import关键字来调用zipfile,再用with开头的命令来处理需要解压的文件 。解决乱码情况可以通过自己创建文件夹的方式来解决,先创建一个自己的解压目录,为了区分是文件还是文件夹要获取文件大小,再把解码方式为cp437变成gbk,再对文件进行拼接,示例如下:
Import zipfilewith zipfile.ZipFile(file=zip_save_path, mode='r') as wz: os.mkdir(unzip_dir_path) for old_name in wz.namelist(): file_size = wz.getinfo(old_name).file_size new_name = old_name.encode('cp437').decode('gbk') new_path = os.path.join(unzip_dir_path, new_name) if file_size > 0: with open(file=new_path, mode='wb') as h: h.write(wz.read(old_name)) else: os.mkdir(new_path)那么为什么会存在乱码这一种情况呢,可以通过查看源码来找原因,原因就是因为文件导出的过程中解码不对,原来编写的代码不能正确被识别为utf-8,utf-8就是所谓的二进制,encode()函数和decode()函数都是字符串函数,并且都是与解码相关的,字节码是通过字符串编码得来,字符串又是通过解码得来字节码,因此在解决zip乱码的时候会使用到encode和decode 。
【Python解压zip乱码怎么解决?如何解决乱码问题?】经过上述的分析,了解了如何解决python解压zip时乱码的问题,在学习的过程中还会遇到很多的不同的问题,是在不断地探索与发现中成长,通过本次的解答,想必大家的专业技能又得到了进步,继续加油吧!
推荐阅读
- Python开发用什么系统好?看完你就知道
- Python函数大小写一样吗?意义一样吗?
- 初中学历可以学python吗?怎样学?
- Python是怎样独立运行的?来了解一下吧
- Python怎样从列表里随机取出一个数?一起来学习吧
- python运行完就自动关闭是怎么回事?看完你就知道了
- dict函数在python中作用是什么?怎么用?
- python的变量类型可以随时改变吗?看完你就知道了
- Python的文件编辑模式是什么?Python文件编辑模式有哪些
- Python的库使用什么语言编写的?Python标准库用什么语言开发的