#读取压缩包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())