利用python解压zip包时出现中文乱码如何解决

  介绍

这篇文章给大家介绍利用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包时出现中文乱码如何解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

利用python解压zip包时出现中文乱码如何解决