Всем привет. Я в 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 (взял здесь).
Комментариев нет:
Отправить комментарий