zoukankan      html  css  js  c++  java
  • zipfile 解压,py3 win下中文乱码

    python3.6.1中解压zip,window下文件名乱码问题的解决办法

    解压代码:

    import sys,os
    filename="路径下压缩包文件"
    
    print(filename)
    # 解压zip
    import zipfile
    def un_zip(file_name):
        """unzip zip file"""
        zip_file = zipfile.ZipFile(file_name)
        print(zip_file)
        if os.path.isdir(file_name + "_files"):
            pass
        else:
            os.mkdir(file_name + "_files")
        print("zip_file",zip_file.namelist())
        for names in zip_file.namelist():
            print("names:",names)
            # print("names:",type(names))
            zip_file.extract(names,file_name + "_files/")
        zip_file.close()
    
    # 解压调用
    un_zip(filename)

    中文乱码,修改源码,因为源码默认只识别  utf8和cp437 两种 ,需要修改的有两处,分别位1202行,1385行

                if flags & 0x800:
                    # UTF-8 file names extension
                    filename = filename.decode('utf-8')
                else:
                    # Historical ZIP filename encoding
                    # 源码,注释掉,改为 win默认的gbk
                    # filename = filename.decode('cp437')
                    filename = filename.decode('gbk')
  • 相关阅读:
    关于树状数组区间最值
    Gym 100500B
    RQNOJ Bus
    关于加权的LIS问题
    vs tip1
    小常识
    我的魔方主力
    killer驱动
    从日升的mecha anime看mecha genre的衰退
    关于供给移动端的视频压制
  • 原文地址:https://www.cnblogs.com/maxiaohei/p/8000909.html
Copyright © 2011-2022 走看看