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

原文地址:https://www.cnblogs.com/slqt/p/10881383.html

时间: 2024-11-06 07:43:55

python解压分析jar包的相关文章

linux 解压修改jar包

打包以及修改jar包 cd genesys_data_etl mvn clean package -Poffline -Dmaven.test.skip=true 日志如下: [INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ genesys_data_etl --- [INFO] Building jar: /Users/xx/IdeaProjects/genesys_data_etl/target/genesys_data_etl-0.0.

python 解压 压缩包

转 http://m.blog.csdn.net/blog/wice110956/26597179# 这里讨论使用Python解压如下五种压缩文件: .gz .tar  .tgz .zip .rar 简介 gz: 即gzip,通常只能压缩一个文件.与tar结合起来就可以实现先打包,再压缩. tar: linux系统下的打包工具,只打包,不压缩 tgz:即tar.gz.先用tar打包,然后再用gz压缩得到的文件 zip: 不同于gzip,虽然使用相似的算法,可以打包压缩多个文件,不过分别压缩文件,

python解压压缩包的几种方法

python解压压缩包的几种方法 .gz .tar  .tgz .zip .rar 简介 gz: 即gzip,通常只能压缩一个文件.与tar结合起来就可以实现先打包,再压缩. tar: linux系统下的打包工具,只打包,不压缩 tgz:即tar.gz.先用tar打包,然后再用gz压缩得到的文件 zip: 不同于gzip,虽然使用相似的算法,可以打包压缩多个文件,不过分别压缩文件,压缩率低于tar. rar:打包压缩文件,最初用于DOS,基于window操作系统.压缩率比zip高,但速度慢,随机

python-29 python解压压缩包的几种方法

这里讨论使用Python解压例如以下五种压缩文件: .gz .tar  .tgz .zip .rar 简单介绍 gz: 即gzip.通常仅仅能压缩一个文件.与tar结合起来就能够实现先打包,再压缩. tar: linux系统下的打包工具.仅仅打包.不压缩 tgz:即tar.gz.先用tar打包,然后再用gz压缩得到的文件 zip: 不同于gzip.尽管使用相似的算法,能够打包压缩多个文件.只是分别压缩文件.压缩率低于tar. rar:打包压缩文件.最初用于DOS,基于window操作系统. 压缩

Java axis2.jar包详解及缺少jar包错误分析

Java  axis2.jar包详解及缺少jar包错误分析 一.最小开发jar集 axis2 开发最小jar包集: activation-1.1.jar axiom-api-1.2.13.jar axiom-dom-1.2.13.jar axiom-impl-1.2.13.jar axis2-adb-1.6.2.jar axis2-adb-codegen-1.6.2.jar axis2-codegen-1.6.2.jar axis2-java2wsdl-1.6.2.jar axis2-kerne

python 解压 zip 文件

python 解压压缩包 使用 python 的 zipfile 模块 对同一目录下的所有 zip 文件解压,也可以指定解压文件名 import os import sys import zipfile def unzip(filename: str): try: file = zipfile.ZipFile(filename) dirname = filename.replace('.zip', '') # 如果存在与压缩包同名文件夹 提示信息并跳过 if os.path.exists(dir

解压tomcat二进制包出错

今天从tomcat官网下载了7.0版的二进制包,解压时出现如下错误: gzip: stdin: unexpected end of file tar: Unexpected EOF in archive tar: Error is not recoverable: exit 搞了半天最后发现是二进制包不完整,又重新下载,浪费了不少时间,郁闷...

dubbo的jmeter压测时jar包的热加载/动态加载

在做dubbo的jmeter压测时,需要把jar包放入jmeter的lib/ext目录下,但是jmeter启动的时候会自动加载这个目录lib目录及lib/ext目录,这样启动后放入这些目录下的jar包就不会加载了. jmeter的master--slave/client模式下,作为jmeter client,jmeter-server服务一直是启动的,当新的jar包放入client后,无法读取,因此需要client的jmeter动态加载这些新放入的jar包. 解决办法参考:http://blog

Python解压.zip文件

1 ''' 解压一个.zip文件或一个目录下的所有.zip文件到指定目录. 2 3 运行方法: 4 格式: 5 python unzip.py "source_dir" "dest_dir" password 6 参数说明: 7 source_dir和dest_dir既可以绝对路径也可以为相对路径.用""将它们括起为了防止路径中出现空格. 8 source_dir和dest_dir的缺省值表示当前目录. 9 password缺省表示压缩文件未加密