明霞山资源网 Design By www.htccd.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.htccd.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
明霞山资源网 Design By www.htccd.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。