Есть ли способ сохранить переменную результата в памяти, чтобы мне не приходилось пересчитывать ее каждый раз при запуске начала моего скрипта?
Я выполняю длинную (5-10 секунд) серию точных операций над набором данных (который я читаю с диска) каждый раз, когда запускаю свой сценарий.
Это не будет большой проблемой, поскольку я довольно хорошо использую интерактивный редактор для отладки своего кода между запусками; однако иногда интерактивные возможности просто не сокращают его.
Я знаю, что могу записать свои результаты в файл на диске, но я бы хотел избежать этого, если это вообще возможно. Это должно быть решение, которое генерирует переменную при первом запуске сценария и сохраняет ее в памяти до тех пор, пока сама оболочка не будет закрыта или пока я явно не скажу ей выдыхаться. Примерно так:
# 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)
Я предполагаю, что модуль shelve может быть тем, что я ищу здесь, но выглядит так, чтобы открыть переменную shelve, мне нужно было бы указать имя файла для постоянного объекта и поэтому я не уверен, что это именно то, что я ищу.
Какие-нибудь советы по получению полки делают то, что я хочу? Есть альтернативные идеи?