У меня есть большой zip-файл, который содержит много jar-файлов.Я хочу прочитать содержимое файлов jar.
Я попытался прочитать внутренний файл JAR в память, которая, кажется, работает (см. Ниже).Однако я не уверен, насколько большими могут быть файлы jar, и обеспокоен тем, что они не помещаются в память.
Есть ли потоковое решение для этой проблемы?
hello.zip
+- hello.jar
+- Hello.class
#!/usr/local/bin/python3
import os
import io
import zipfile
zip = zipfile.ZipFile('hello.zip', 'r')
for zipname in zip.namelist():
if zipname.endswith('.jar'):
print(zipname)
jarname = zip.read(zipname)
memfile = io.BytesIO(jarname)
jar = zipfile.ZipFile(memfile)
for f in jar.namelist():
print(f)
hello.jar
META-INF/
META-INF/MANIFEST.MF
Hello.class