ylab hoverinfo python zipfile

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.