¿Hay alguna forma de mantener una variable de resultado en la memoria para no tener que volver a calcularla cada vez que ejecuto el script? Estoy haciendo una serie larga (5-10 seg) de las operaciones exactas en un conjunto de datos (que estoy leyendo del disco) cada vez que ejecuto mi script. Esto no sería un gran problema ya que soy bastante bueno en el uso del editor interactivo para depurar mi código entre ejecuciones; sin embargo, a veces las capacidades interactivas simplemente no lo cortan.Mantener variables persistentes en la memoria entre las ejecuciones de la secuencia de comandos de Python
Sé que podría escribir mis resultados en un archivo en el disco, pero me gustaría evitar hacerlo si es posible. Esta debería ser una solución que genere una variable la primera vez que ejecute el script, y lo mantenga en la memoria hasta que el propio shell se cierre o hasta que explícitamente diga que se desvanezca. Algo como esto:
# Check if variable already created this session
in_mem = var_in_memory() # Returns pointer to var, or False if not in memory yet
if not in_mem:
# Read data set from disk
with open('mydata', 'r') as in_handle:
mytext = in_handle.read()
# Extract relevant results from data set
mydata = parse_data(mytext)
result = initial_operations(mydata)
in_mem = store_persistent(result)
tengo una idea de que el módulo shelve podría ser lo que estoy buscando aquí, pero parece que con el fin de abrir una variable estantería que tendría que especificar un nombre de archivo para el objeto persistente, por lo que no estoy seguro de si es bastante lo que estoy buscando.
¿Algún consejo sobre hacer que shelve haga lo que quiero que haga? ¿Alguna idea alternativa?
Consideraría agregar un manejador de excepciones, donde ejecuta la fuente externa. – mehmetminanc
¿Qué sucede si se actualiza una dependencia de mainscript.py? ¿Debo volver a cargarlo de forma explícita? – pomber
¿No sería suficiente almacenar la variable en os.environ? – Ladmerc