杰网资源 Design By www.escxy.com
写这个玩意的背景:在u8多渠道打包里,需要分析jar包,并把里面的文件按目录和类型分别放在root和assets文件夹里,之前师兄都是手动解压,一个一个文件夹找文件,效率比较低,刚好最近手上的android项目已经做完了,就决定写一个自动化分析jar文件并复制粘贴到指定文件夹的脚本。
# -*- coding: utf-8 -*- import os import shutil import zipfile count = 1 def getSumDir(): sumfilelist = os.listdir(os.getcwd()) for dir in sumfilelist: if ".idea" not in dir: classify(dir) def getlibDir(): sumfilelist = os.listdir(os.getcwd()) for dir in sumfilelist: if "libs" in dir: jieyajar(dir) def jieyajar(dir): files = os.listdir(dir) for jars in files: if "jar" in jars: zfile = zipfile.ZipFile('libs/' + jars, 'r') if not os.path.exists(os.getcwd() + '/jarlog/' + jars): os.makedirs(os.getcwd() + '/jarlog/' + jars) zfile.extractall(os.getcwd() + '/jarlog/' + jars) if not os.path.exists(os.getcwd() + '/jars/'): os.makedirs(os.getcwd() + '/jars/') zfile.extractall(os.getcwd() + '/jars/') zfile.close for file in os.listdir(os.getcwd()): if "jars" in file: classify(file) # def classify(path): # if os.path.isfile(path): # if ".class" not in path: # if "assets" in os.path.dirname(path): # if not os.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: # if not os.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) # for dir in list: # classify(path+"/"+dir) def classify(path): global count if os.path.isfile(path): if ".class" not in path: if not os.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' in path and count == 1: count = count + 1 shutil.copytree(os.getcwd()+'/'+path, os.getcwd() + '/assets') elif 'META-INF' not in path: list = os.listdir(path) for dir in list: classify(path + "/" + dir) # getSumDir() getlibDir()
嗯,主要就是对文件夹和文件的操作。。
以上这篇用python解压分析jar包实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
标签:
python,解压,jar包
杰网资源 Design By www.escxy.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
杰网资源 Design By www.escxy.com
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。