读取压缩包内文件
zipfile().ZipFile(), .namelist()
import zipfile with zipfile.ZipFile('Desktop.zip','r') as zipobj: print(zipobj.namelist())
最好不要有中文,否则容易出乱码
处理压缩包里的中文
.encode('cp437').decode('gbk')
import zipfile with zipfile.ZipFile('Desktop.zip','r') as zipobj: for filename in zipobj.namelist(): print(filename.encode('cp437').decode('gbk'))
读取压缩包内文件信息
zipobj.getinfo()
import zipfile with zipfile.ZipFile('Desktop.zip','r') as zipobj: for file_name in zipobj.namelist(): info = zipobj.getinfo(file_name) file_name = file_name.encode('cp437').decode('gbk') print(file_name, info.file_size, info.compress_size)
.file_size是原始文件大小
.compress_size是压缩后大小
输出单位是字节
解压压缩包
.extractall(path=解压到哪个位置)
import zipfile with zipfile.ZipFile('Desktop.zip','r') as zipobj: zipobj.extractall('./Desktop/')
解决中文乱码
解压完了后重写文件名
import os import zipfile filePath = 'Desktop.zip' release_file_dir = 'D:/py/Desktop/' zip_file_contents = zipfile.ZipFile(filePath, 'r') zip_file_contents.extractall(release_file_dir)#解压缩ZIP文件 for file in zip_file_contents.namelist(): filename = file.encode('cp437').decode('gbk')#先使用cp437编码,然后再使用gbk解码 print(filename) os.chdir(release_file_dir)#切换到目标目录 os.rename(file,filename)#重命名文件
创建压缩包
zipobj.write(要压缩成的文件名)
import zipfile file_list = ['mnist_backward.py', 'mnist_forward.py','AJUN水印.jpg'] with zipfile.ZipFile('py.zip','w') as zipobj: for file in file_list: zipobj.write(file)
向已有的压缩包里添加文件
zipobj.write(待添加的文件名)
import zipfile with zipfile.ZipFile('py.zip','a') as zipobj: zipobj.write('my.png')
python创建和读取压缩包(zip类型)
最新推荐文章于 2025-03-20 23:16:35 发布