#python #jar #java #resources
Всем привет.
Я в python/jython новичок.
Возникла проблема: надо загрузить файлы из определенного каталога.
Локально, никаких проблем
for name in glob.glob("%s/*.json" % some_path):
log.debug(name)
definition = json.loads(file(name).read())
Проблемма вот в чем: основная аппликация на java распространяется как jar(s), и все
ресурсы тоже сидят в jar'e.
Путь к папке ресурсов определяется в jave:
URL resourceURL = CommonMethods.class.getClassLoader().getResource(resourceName);
String resourcePath = resourceURL.getPath();
String dirPath = resourcePath.substring(0, resourcePath.lastIndexOf("/")+1);
Если ресурс в jar'e, то получаем
dirPath="file:/opt/lib/core-lib-1.0.jar!/rulz/"
И glob.glob() не работает, думаю, что file(name).read() тоже. :(
Подскажите, как читать файлы питоном из jar'a?
Ответы
Ответ 1
А вот так не подойдет? def show_jar_classes(jar_file): """prints out .class files from jar_file""" zf = zipfile.ZipFile(jar_file, 'r') try: lst = zf.infolist() for zi in lst: fn = zi.filename if fn.endswith('.class'): print(fn) finally: zf.close() То есть действуем так как-будто jar эквивалентен zip (взял здесь).
Комментариев нет:
Отправить комментарий