python解压zip包中文乱码解决方法

 更新时间:2020年11月27日 17:26:01   作者:zezhou222  
这篇文章主要介绍了python解压zip包中文乱码解决方法,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下

乱码得原因:

由于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小程序爬取今日新闻拿走就能用

    Python小程序爬取今日新闻拿走就能用

    这篇文章主要教大家怎样实现一个Python小程序,爬取今日新闻,文中给出了详细的示例代码,拿走就能用,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • Python namedtuple命名元组实现过程解析

    Python namedtuple命名元组实现过程解析

    这篇文章主要介绍了Python namedtuple命名元组实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • python库geopy计算多组经纬度距离的实现方式

    python库geopy计算多组经纬度距离的实现方式

    这篇文章主要介绍了python库geopy计算多组经纬度距离的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python如何修改PYTHONPATH环境变量

    python如何修改PYTHONPATH环境变量

    这篇文章主要介绍了python如何修改PYTHONPATH环境变量问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python 在sql语句中使用%s,%d,%f说明

    python 在sql语句中使用%s,%d,%f说明

    这篇文章主要介绍了python 在sql语句中使用%s,%d,%f说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python实现消消乐小游戏

    Python实现消消乐小游戏

    本文主要介绍了Python实现消消乐小游戏,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • python与C互相调用的方法详解

    python与C互相调用的方法详解

    这篇文章主要给大家介绍了关于python与C互相调用方法的相关资料,文中通过示例代码详细介绍了动用的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-07-07
  • Python中可变和不可变对象的深入讲解

    Python中可变和不可变对象的深入讲解

    python与C/C++不一样,它的变量使用有自己的特点,学python的时候一定要记住一切皆为对象,一切皆为对象的引用,这篇文章主要给大家介绍了关于Python中可变和不可变对象的相关资料,需要的朋友可以参考下
    2021-07-07
  • 跟老齐学Python之变量和参数

    跟老齐学Python之变量和参数

    对于变量和参数,不管是已经敲代码多年的老鸟,还是刚刚接触编程的小白,都会有时候清楚,有时候又有点模糊。因为,在实际应用中,它们之间分分离离,比如,敲代码都知道,x=3中x是变量,它不是参数,但是在函数y=3x+4中,x是变量,也是参数。
    2014-10-10
  • Python无损压缩图片的示例代码

    Python无损压缩图片的示例代码

    这篇文章主要介绍了Python无损压缩图片的方法,简单的代码即可实现压缩图片,感兴趣的朋友可以了解下
    2020-08-08

最新评论