介绍
这篇文章给大家介绍利用python解压zip包时出现中文乱码如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>乱码得原因:强>
由于ZipFile模块导出遇到中文解码不对,窗户上会出现,linux是否会出现不知道没测试过只
<强>解决方式:强>
1。搞个文件名引射表(不太方便,少量文件夹套用时候还可以)
2。修改源码解码格式(不太方便,自己搞了一下,之后报其他错误)
3。自己写入文件,自己创建文件夹(推荐)
<>强自己创建的写法:强>
with zipfile.ZipFile(文件=zip_save_path,,模式=& # 39;" # 39;),as zf: ,,,,,#,解压到指定目录,首先创建一个解压目录 ,,,,,os.mkdir (unzip_dir_path) ,,,,,for old_name 拷贝zf.namelist (): ,,,,,,,#,获取文件大小,目的是区分文件夹还是文件,如果是空文件应该不好用。 ,,,,,,,file_size =, zf.getinfo .file_size (old_name) ,,,,,,,#,由于源码遇到中文是cp437方式,所以解码成gbk, windows即可正常 ,,,,,,,new_name =, old_name.encode (& # 39; cp437& # 39;) .decode (& # 39; gbk # 39;) ,,,,,,,#,拼接文件的保存路径 ,,,,,,,new_path =, os.path.join (unzip_dir_path, new_name) ,,,,,,,#,判断文件是文件夹还是文件 ,,,,,,,if file_size 祝辞,0: ,,,,,,,,,#,是文件,通过开放创建文件,写入数据 ,,,,,,,,,with 打开(文件=new_path,,模式=& # 39;wb # 39;), as f: ,,,,,,,,,,,#,zf.read 是读取压缩包里的文件内容 ,,,,,,,,,,,f.write (zf.read (old_name)) ,,,,,,,其他的: ,,,,,,,,,#,是文件夹,就创建
关于利用python解压zip包时出现中文乱码如何解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。