#读取压缩包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())
浙公网安备 33010602011771号