¿Hay alguna forma de hacer que un archivo dentro de un archivo zip pueda buscarse en Python sin leerlo en la memoria?seek() un archivo dentro de un archivo zip en Python sin pasarlo a la memoria
He probado el procedimiento obvio, pero me da un error ya que el archivo no es reubicable:
In [74]: inputZipFile = zipfile.ZipFile("linear_g_LAN2A_F_3keV_1MeV_30_small.zip", 'r')
In [76]: inputCSVFile = inputZipFile.open(inputZipFile.namelist()[0], 'r')
In [77]: inputCSVFile
Out[77]: <zipfile.ZipExtFile at 0x102f5fad0>
In [78]: inputCSVFile.se
inputCSVFile.seek inputCSVFile.seekable
In [78]: inputCSVFile.seek(0)
---------------------------------------------------------------------------
UnsupportedOperation Traceback (most recent call last)
<ipython-input-78-f1f9795b3d55> in <module>()
----> 1 inputCSVFile.seek(0)
UnsupportedOperation: seek
Ya veo, gracias. Pero por lo que estoy buscando, es posible con archivos tar, ¿correcto? – jbssm
Solo si el archivo tar no está comprimido. Tan pronto como aplique la compresión gzip (DEFLATE), obtendrá el mismo problema. –
Aunque sucede sobre la marcha, puedo usar un archivo tar comprimido gzip y buscar dentro, Python parece descomprimirlo en la memoria o en algún lugar de un disco tmp y el proceso lleva mucho tiempo en comparación con un archivo descomprimido - sobre 1min vs 4 segundos para el ejemplo que estoy intentando. Gracias por toda la ayuda. – jbssm