蓝绝

博客园 首页 新随笔 联系 订阅 管理

#读取压缩包zip内文件 zipfile.ZipFile()    .namelist()

#读取压缩包内文件信息 .getinfo()

#读取压缩文件
import  zipfile
with  zipfile.ZipFile('我的文件夹.zip','r') as zipobj:
    print(zipobj.namelist())                            #以列表形式输出压缩包的文件
    #读取压缩包内文件信息
    for file_name in zipobj.namelist():
       info= zipobj.getinfo(file_name)
       print(file_name,info.file_size,info.compress_size)

#乱码及无法找到压缩包中的文件问题,解决方式

    1,更改压缩软件设置

 

 2.直接更改源码

from zipfile import ZipFile

#
def support_gbk(zip_file: ZipFile):
    name_to_info = zip_file.NameToInfo
    # copy map first
    for name, info in name_to_info.copy().items():
        real_name = name.encode('cp437').decode('gbk')
        if real_name != name:
            info.filename = real_name
            del name_to_info[name]
            name_to_info[real_name] = info
    return zip_file


with  support_gbk(ZipFile('我的文件夹.zip')) as zipobj:
    zipobj.extract('我的文件夹/demo18.py', 'new_dir')
    print(zipobj.namelist())

  

 

posted on 2022-10-23 21:38  蓝绝  阅读(362)  评论(0)    收藏  举报