separar - Si tengo el contenido de un archivo zip en una cadena de Python, ¿puedo descomprimirlo sin escribirlo en un archivo?
reemplazar caracteres en python (2)
He escrito algún código de Python que recupera un archivo zip de la web y en una cadena:
In [1]: zip_contents[0:5]
Out[1]: ''PK/x03/x04/x14''
Veo que hay una biblioteca zipfile, pero tengo problemas para encontrar una función en la que pueda pasar un montón de datos zip en bruto. Parece querer leerlo desde un archivo.
¿Realmente necesito descargar esto en un archivo temporal, o hay alguna forma de evitarlo?
Envuelve tu cadena en un objeto cStringIO . Se ve, actúa y grazna como un objeto de archivo, pero reside en la memoria.
zipfile.ZipFile
acepta cualquier objeto similar a un archivo, por lo que puede usar StringIO
(2.x) o BytesIO
(3.x):
try:
from cStringIO import StringIO
except:
from StringIO import StringIO
import zipfile
fp = StringIO(''PK/x03/x04/x14'')
zfp = zipfile.ZipFile(fp, "r")