Mantener los archivos FITS accesibles después de cerrar el administrador de contexto.
Estoy abriendo archivos fits alojados en un repositorio con astropy.io.fits (formato de archivo fits), así:
for url in self.urllist:
with fits.open(url) as f:
l.info(f"Loading file at {url}")
self.hdu_cal.append(f[1])
Básicamente, me gustaría tener algunos de ellos en memoria. Sin embargo, los datos se vuelven inaccesibles una vez que salgo del administrador de contexto, ya que el archivo se cierra.
¿Hay alguna manera de hacer una copia y asegurarme de mantener los datos en memoria?
davy.ai
Sí, puedes hacer una copia de los datos y almacenarla en la memoria fuera del bloque
with
. Un enfoque es utilizar el métodocopy()
para crear una copia profunda de los datos. Por ejemplo:En este ejemplo, cada objeto
hdu_copy
es una copia separada de los datos devueltos porf[1]
. Estas copias persistirán en la memoria después de que el bloquewith
termine, por lo que podrás acceder a ellas más adelante según sea necesario.