python - hoverinfo - plotly layout
python: abre un archivo desde zip sin extraerlo temporalmente (3)
En teoría, sí, solo es cuestión de conectar cosas. Zipfile puede proporcionarle un objeto similar a un archivo en un archivo zip, y image.load aceptará un objeto similar a un archivo. Así que algo como esto debería funcionar:
import zipfile
archive = zipfile.ZipFile(''images.zip'', ''r'')
imgfile = archive.open(''img_01.png'')
try:
image = pygame.image.load(imgfile, ''img_01.png'')
finally:
imgfile.close()
¿Cómo puedo abrir archivos desde un archivo zip sin extraerlos primero?
Estoy usando pygame. Para ahorrar espacio en el disco, tengo todas las imágenes comprimidas. ¿Es posible cargar una imagen dada directamente desde el archivo zip? Por ejemplo: pygame.image.load(''zipFile/img_01'')
La respuesta de Vincent Povirk no funcionará completamente;
import zipfile
archive = zipfile.ZipFile(''images.zip'', ''r'')
imgfile = archive.open(''img_01.png'')
...
Tienes que cambiarlo en:
import zipfile
archive = zipfile.ZipFile(''images.zip'', ''r'')
imgdata = archive.read(''img_01.png'')
...
Para más detalles lea la documentación de ZipFile here
import io, pygame, zipfile
archive = zipfile.ZipFile(''images.zip'', ''r'')
# read bytes from archive
img_data = archive.read(''img_01.png'')
# create a pygame-compatible file-like object from the bytes
bytes_io = io.BytesIO(img_data)
img = pygame.image.load(bytes_io)
Estaba intentando resolver esto por mí mismo en este momento y pensé que podría ser útil para cualquiera que se encuentre con esta pregunta en el futuro.