Страницы

Поиск по вопросам

среда, 27 февраля 2019 г.

Как питоном загрузить ресурс из jar файла?

Всем привет. Я в 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?


Ответ

А вот так не подойдет?
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 (взял здесь).

Комментариев нет:

Отправить комментарий