python解压分析jar包

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()