为什么学习:
在做自动化测试平台的apk上传功能部分时候,涉及到apk上传后提取apk的icon图标,通过aapt解析apk,获取对应icon在apk中的地址,通过python的zipfile模块来解压缩提取到指定的icon的图标
zipfile模块的用途:
zipfile模块是用来做zip格式编码的压缩和解压缩的,zipfile有两个重要的类:ZipFile 创建和读取zip文件 ZipInfo是存储zip文件的每个文件的信息的
读取zip文件:
1 import zipfile 2 3 #默认模式r,读 4 zip = zipfile.ZipFile("bb,zip") 5 #返回所有文件夹和文件 6 print(zip.namelist()) 7 #返回该zip的文件名 8 print(zip.filename) 9 10 #压缩文件 11 zip_info = zip.getinfo('bb/aa.txt') 12 #原来文件大小 13 print(zip_info.file_size) 14 #返回原来文件的大小 15 print(zip_info,compress_size) 16 #读取压缩文件中内容 默认是字节模式 17 a = zip.read('bb/cc.txt').decode('utf-8') 18 print(a)
运用到平台中的代码
aapt 对应apk 提取icon参数 取到对应的icon在apk压缩包中的路径
zip = zipfile.ZipFile(apkFilePath) iconData = zip.read(IconPath) with open(saveIconPath,'wb') as IconFile: IconFile.write(iconData) zip.close()
对应apk中的icon信息存储到了对应的路径位置