zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    学习链接
    【转】C#学习路线WinForm学习路线
    WPF 等待动画控件
    wpf 设置窗体在屏幕的初始位置
    WPF 添加右键菜单 自定义透明控件
    记录自己的点滴
    Linux下的mysql默认大小写敏感
    springboot+mybatis遇到BUG:自动注入失败
    springboot在阿里CentOS 7后台永久运行
    阿里云CentOS7 64位安装jdk8和mysql5.6.43及远程连接mysql
  • 原文地址:https://www.cnblogs.com/slqt/p/10881383.html
Copyright © 2011-2022 走看看