蓝绝

博客园 首页 新随笔 联系 订阅 管理
  232 随笔 :: 1 文章 :: 0 评论 :: 25872 阅读

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

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

1
2
3
4
5
6
7
8
#读取压缩文件
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.直接更改源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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   蓝绝  阅读(350)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示