用python解压分析jar包实例
写这个玩意的背景:在u8多渠道打包里,需要分析jar包,并把里面的文件按目录和类型分别放在root和assets文件夹里,之前师兄都是手动解压,一个一个文件夹找文件,效率比较低,刚好最近手上的android项目已经做完了,就决定写一个自动化分析jar文件并复制粘贴到指定文件夹的脚本。
#-*-coding:utf-8-*- importos importshutil importzipfile count=1 defgetSumDir(): sumfilelist=os.listdir(os.getcwd()) fordirinsumfilelist: if".idea"notindir: classify(dir) defgetlibDir(): sumfilelist=os.listdir(os.getcwd()) fordirinsumfilelist: if"libs"indir: jieyajar(dir) defjieyajar(dir): files=os.listdir(dir) forjarsinfiles: if"jar"injars: zfile=zipfile.ZipFile('libs/'+jars,'r') ifnotos.path.exists(os.getcwd()+'/jarlog/'+jars): os.makedirs(os.getcwd()+'/jarlog/'+jars) zfile.extractall(os.getcwd()+'/jarlog/'+jars) ifnotos.path.exists(os.getcwd()+'/jars/'): os.makedirs(os.getcwd()+'/jars/') zfile.extractall(os.getcwd()+'/jars/') zfile.close forfileinos.listdir(os.getcwd()): if"jars"infile: classify(file) #defclassify(path): #ifos.path.isfile(path): #if".class"notinpath: #if"assets"inos.path.dirname(path): #ifnotos.path.exists(os.path.dirname(os.getcwd())+'/assets/'+os.path.dirname(path)): #os.makedirs(os.path.dirname(os.getcwd())+'/assets/'+os.path.dirname(path)) #shutil.copy(path,os.path.dirname(os.getcwd())+'/assets/'+os.path.dirname(path)) #else: #ifnotos.path.exists(os.path.dirname(os.getcwd())+'/root/'+os.path.dirname(path)): #os.makedirs(os.path.dirname(os.getcwd())+'/root/'+os.path.dirname(path)) #shutil.copy(path,os.path.dirname(os.getcwd())+'/root/'+os.path.dirname(path)) #else: #list=os.listdir(path) #fordirinlist: #classify(path+"/"+dir) defclassify(path): globalcount ifos.path.isfile(path): if".class"notinpath: ifnotos.path.exists(os.getcwd()+'/root/'+os.path.dirname(path)): os.makedirs(os.getcwd()+'/root/'+os.path.dirname(path)) shutil.copy(path,os.getcwd()+'/root/'+os.path.dirname(path)) else: if'assets'inpathandcount==1: count=count+1 shutil.copytree(os.getcwd()+'/'+path,os.getcwd()+'/assets') elif'META-INF'notinpath: list=os.listdir(path) fordirinlist: classify(path+"/"+dir) #getSumDir() getlibDir()
嗯,主要就是对文件夹和文件的操作。。
以上这篇用python解压分析jar包实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。