用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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。